Pest Control Wiki
pestcontrolwikiwiki
https://pestcontrolwiki.miraheze.org/wiki/Main_Page
MediaWiki 1.40.2
first-letter
Media
Special
Talk
User
User talk
Pest Control Wiki
Pest Control Wiki talk
File
File talk
MediaWiki
MediaWiki talk
Template
Template talk
Help
Help talk
Category
Category talk
Module
Module talk
Main Page
0
1
1
2024-01-02T21:28:25Z
MediaWiki default
1
Welcome to Miraheze!
wikitext
text/x-wiki
__NOTOC__
== Welcome to {{SITENAME}}! ==
This Main Page was created automatically and it seems it hasn't been replaced yet.
=== For the bureaucrat(s) of this wiki ===
Hello, and welcome to your new wiki! Thank you for choosing Miraheze for the hosting of your wiki, we hope you will enjoy our hosting.
You can immediately start working on your wiki or whenever you want.
Need help? No problem! We will help you with your wiki as needed. To start, try checking out these helpful links:
* [[mw:Special:MyLanguage/Help:Contents|MediaWiki guide]] (e.g. navigation, editing, deleting pages, blocking users)
* [[meta:Special:MyLanguage/FAQ|Miraheze FAQ]]
* [[meta:Special:MyLanguage/Request features|Request settings changes on your wiki]]. (Extensions, Skin and Logo/Favicon changes should be done through [[Special:ManageWiki]] on your wiki, see [[meta:Special:MyLanguage/ManageWiki|ManageWiki]] for more information.)
==== I still don't understand X! ====
Well, that's no problem. Even if something isn't explained in the documentation/FAQ, we are still happy to help you. You can find us here:
* [[meta:Special:MyLanguage/Help center|On our own Miraheze wiki]]
* On [[phab:|Phabricator]]
* On [https://miraheze.org/discord Discord]
* On IRC in #miraheze on irc.libera.chat ([irc://irc.libera.chat/%23miraheze direct link]; [https://web.libera.chat/?channel=#miraheze webchat])
=== For visitors of this wiki ===
Hello, the default Main Page of this wiki (this page) has not yet been replaced by the bureaucrat(s) of this wiki. The bureaucrat(s) might still be working on a Main Page, so please check again later!
21236ac3f8d65e5563b6da6b70815ca6bf1e6616
6
1
2024-01-02T22:29:11Z
Laggardson
2
wikitext
text/x-wiki
{{ColoredBox
|title=Welcome!
|background-title-color=#ff0000
|center-title=true
|center-content=true
|content=
Welcome to Pest Control Wiki - a wiki for the actual-play podcast ''[[Pest Control]]''!
<p><strong>Official Links</strong><br> [https://twitter.com/PestControlPod Twitter] • [https://cohost.org/pestcontrolpod Cohost] • [https://discord.gg/uv9bzF6RPY Discord] </p>
<p><strong>Contribute to the Wiki</strong><br> <strong>{{NUMBEROFARTICLES}} PAGES</strong> • [[Main_Page|Getting Started]]</p>
}}
{{ColoredBox
|title=Seasons
|background-title-color=#ff0000
|center-title=true
|content =
{{ContentFlex
|style=flex-wrap:wrap;justify-content:center;flex-grow:0
|content=
{{Home season list item
|filename=
|imagepage=
|text='''''[[Fate]]'''''
}}
{{Home season list item
|filename=
|imagepage=
|text='''''[[Norfork]]'''''
}}
}}
|center-content=true
}}
}}
{{ColoredBox
|title = The Cast
|background-title-color=#ff0000
|center-content=true|center-title=true
|content =
[[Sam Richardson]] • [[William White]] • [[Jonas Newhouse]] • [[Sam Darr]]
}}
__NOTOC__
== Welcome to {{SITENAME}}! ==
This Main Page was created automatically and it seems it hasn't been replaced yet.
=== For the bureaucrat(s) of this wiki ===
Hello, and welcome to your new wiki! Thank you for choosing Miraheze for the hosting of your wiki, we hope you will enjoy our hosting.
You can immediately start working on your wiki or whenever you want.
Need help? No problem! We will help you with your wiki as needed. To start, try checking out these helpful links:
* [[mw:Special:MyLanguage/Help:Contents|MediaWiki guide]] (e.g. navigation, editing, deleting pages, blocking users)
* [[meta:Special:MyLanguage/FAQ|Miraheze FAQ]]
* [[meta:Special:MyLanguage/Request features|Request settings changes on your wiki]]. (Extensions, Skin and Logo/Favicon changes should be done through [[Special:ManageWiki]] on your wiki, see [[meta:Special:MyLanguage/ManageWiki|ManageWiki]] for more information.)
==== I still don't understand X! ====
Well, that's no problem. Even if something isn't explained in the documentation/FAQ, we are still happy to help you. You can find us here:
* [[meta:Special:MyLanguage/Help center|On our own Miraheze wiki]]
* On [[phab:|Phabricator]]
* On [https://miraheze.org/discord Discord]
* On IRC in #miraheze on irc.libera.chat ([irc://irc.libera.chat/%23miraheze direct link]; [https://web.libera.chat/?channel=#miraheze webchat])
=== For visitors of this wiki ===
Hello, the default Main Page of this wiki (this page) has not yet been replaced by the bureaucrat(s) of this wiki. The bureaucrat(s) might still be working on a Main Page, so please check again later!
27ef83d10b084f130554c128d412eb2a2d905062
Pest Control
0
2
2
2024-01-02T22:00:40Z
Laggardson
2
Created page with " '''''Pest Control''''' is a tabletop actual-play horror podcast. It started as a livestream on the [[AltHaven]] YouTube channel in 2018. It currently has 50 episodes. == Cast == The cast of Pest Control are: * [[Sam Richardson]] * [[William White]] * [[Jonas Newhouse]] * [[Sam Darr]] == The Seasons == * Season 1: [[Fate|''Fate'']] (2018–2019) * Season 2: [[Norfork|''Norfork'']] (2022–current) == Notes == <references group="Note" /> == References == {{Refl..."
wikitext
text/x-wiki
'''''Pest Control''''' is a tabletop actual-play horror podcast. It started as a livestream on the [[AltHaven]] YouTube channel in 2018. It currently has 50 episodes.
== Cast ==
The cast of Pest Control are:
* [[Sam Richardson]]
* [[William White]]
* [[Jonas Newhouse]]
* [[Sam Darr]]
== The Seasons ==
* Season 1: [[Fate|''Fate'']] (2018–2019)
* Season 2: [[Norfork|''Norfork'']] (2022–current)
== Notes ==
<references group="Note" />
== References ==
{{Reflist}}
[[Category:Pest Control]]
ab5ba2fbdb20c52a2c9a5ab3c818c9afe5059e7e
MediaWiki:Sidebar
8
3
3
2024-01-02T22:13:34Z
Laggardson
2
Created page with "*'''Seasons''' ** Seasons|seasons *'''Navigation''' ** mainpage|mainpage-description ** recentchanges-url|recentchanges ** randompage-url|randompage ** helppage|help-mediawiki * SEARCH * TOOLBOX * LANGUAGES"
wikitext
text/x-wiki
*'''Seasons'''
** Seasons|seasons
*'''Navigation'''
** mainpage|mainpage-description
** recentchanges-url|recentchanges
** randompage-url|randompage
** helppage|help-mediawiki
* SEARCH
* TOOLBOX
* LANGUAGES
9d777dbdf2384c167d0f119e21ffbd09856fd508
4
3
2024-01-02T22:15:12Z
Laggardson
2
wikitext
text/x-wiki
*Seasons
** Seasons|Seasons
*Navigation
** mainpage|mainpage-description
** recentchanges-url|recentchanges
** randompage-url|randompage
** helppage|help-mediawiki
* SEARCH
* TOOLBOX
* LANGUAGES
931cdbe85da08b8294766fcbc639bdd6a4d6a5f5
5
4
2024-01-02T22:18:15Z
Laggardson
2
wikitext
text/x-wiki
*Seasons
**Fate|Fate
**Norfork|Norfork
*Navigation
** mainpage|mainpage-description
** recentchanges-url|recentchanges
** randompage-url|randompage
** helppage|help-mediawiki
* SEARCH
* TOOLBOX
* LANGUAGES
d2d2a84f8cf5dffa2ad4e906a6886251527eafe1
Template:ColoredBox
10
4
7
2024-01-02T22:31:02Z
Laggardson
2
Created page with "<templatestyles src="ColoredBox/style.css"/> <div class="mw-tpl-colorbox {{{class|}}}" style="{{#if:{{{background-content-color|}}} | background-color: {{{background-content-color | #ffffff}}}; }} {{#if:{{{background-title-color|}}} | border-color:{{{background-title-color}}} | #e2e2e2}} {{{colorbox-style|}}}"> {{#if:{{{title|}}}|<div class="mw-tpl-colorbox-title" style="{{#if:{{{background-title-color|}}}|background-color:{{{background-title-color|#e2e2e2}}};}}{{#if:{{{..."
wikitext
text/x-wiki
<templatestyles src="ColoredBox/style.css"/>
<div class="mw-tpl-colorbox {{{class|}}}" style="{{#if:{{{background-content-color|}}} | background-color: {{{background-content-color | #ffffff}}}; }} {{#if:{{{background-title-color|}}} | border-color:{{{background-title-color}}} | #e2e2e2}} {{{colorbox-style|}}}">
{{#if:{{{title|}}}|<div class="mw-tpl-colorbox-title" style="{{#if:{{{background-title-color|}}}|background-color:{{{background-title-color|#e2e2e2}}};}}{{#if:{{{center-title|}}}|text-align:center|}}{{{colorbox-title-style|}}}">{{#if:{{{icon|}}}|[[File:{{{icon}}}|20px|class=colorbox-title-icon|link=|alt=]] }}<strong style="{{#if:{{{title-color|}}}| color: {{{title-color|#000000}}}; }}">{{{title}}}</strong>{{#if:{{{link|}}}|<div class="mw-tpl-colorbox-title-corner">[[{{{link}}}|<span style="{{#if:{{{link-color|{{{title-color|}}}}}}| color: {{{link-color|{{{title-color|}}}}}}; }}">{{{view-text|view}}}</span>]]</div>}}</div>|}}
<div class="mw-tpl-colorbox-content" style="{{#if:{{{center-content|}}}|text-align:center|}}{{{colorbox-content-style|}}}">
{{{content}}}
</div>
</div><noinclude>
[[Category:Templates]]
[[Category:Layout Templates]]
[[Category:Decorative Templates]]
</noinclude>
dd0ee37794e36c95fec28d1c1f0a085a212811da
31
7
2024-01-03T16:13:24Z
Laggardson
2
wikitext
text/x-wiki
<templatestyles src="ColoredBox/style.css"/>
<div class="mw-tpl-colorbox {{{class|}}}" style="{{#if:{{{background-content-color|}}} | background-color: {{{background-content-color | #ffffff}}}; }} {{#if:{{{background-title-color|}}} | border-color:{{{background-title-color}}} | #e2e2e2}} {{{colorbox-style|}}}">
{{#if:{{{title|}}}|<div class="mw-tpl-colorbox-title" style="{{#if:{{{background-title-color|}}}|background-color:{{{background-title-color|#e2e2e2}}};}}{{#if:{{{center-title|}}}|text-align:center|}}{{{colorbox-title-style|}}}">{{#if:{{{icon|}}}|[[File:{{{icon}}}|20px|class=colorbox-title-icon|link=|alt=]] }}<strong style="{{#if:{{{title-color|}}}| color: {{{title-color|#000000}}}; }}">{{{title}}}</strong>{{#if:{{{link|}}}|<div class="mw-tpl-colorbox-title-corner">[[{{{link}}}|<span style="{{#if:{{{link-color|{{{title-color|}}}}}}| color: {{{link-color|{{{title-color|}}}}}}; }}">{{{view-text|view}}}</span>]]</div>}}</div>|}}
<div class="mw-tpl-colorbox-content" style="{{#if:{{{center-content|}}}|text-align:center|}}{{{colorbox-content-style|}}}">
{{{content}}}
</div>
</div><noinclude>
[[Category:Templates]]
[[Category:Layout Templates]]
[[Category:Decorative Templates]]
</noinclude>
##test
24aec46a2f1e38ad6a8971635bfc4236b29d144e
39
31
2024-01-03T17:53:31Z
Laggardson
2
wikitext
text/x-wiki
<templatestyles src="ColoredBox/style.css"/>
<div class="mw-tpl-colorbox {{{class|}}}" style="{{#if:{{{background-content-color|}}} | background-color: {{{background-content-color | #ffffff}}}; }} {{#if:{{{background-title-color|}}} | border-color:{{{background-title-color}}} | #e2e2e2}} {{{colorbox-style|}}}">
{{#if:{{{title|}}}|<div class="mw-tpl-colorbox-title" style="{{#if:{{{background-title-color|}}}|background-color:{{{background-title-color|#e2e2e2}}};}}{{#if:{{{center-title|}}}|text-align:center|}}{{{colorbox-title-style|}}}">{{#if:{{{icon|}}}|[[File:{{{icon}}}|20px|class=colorbox-title-icon|link=|alt=]] }}<strong style="{{#if:{{{title-color|}}}| color: {{{title-color|#000000}}}; }}">{{{title}}}</strong>{{#if:{{{link|}}}|<div class="mw-tpl-colorbox-title-corner">[[{{{link}}}|<span style="{{#if:{{{link-color|{{{title-color|}}}}}}| color: {{{link-color|{{{title-color|}}}}}}; }}">{{{view-text|view}}}</span>]]</div>}}</div>|}}
<div class="mw-tpl-colorbox-content" style="{{#if:{{{center-content|}}}|text-align:center|}}{{{colorbox-content-style|}}}">
{{{content}}}
</div>
</div><noinclude>
[[Category:Templates]]
[[Category:Layout Templates]]
[[Category:Decorative Templates]]
</noinclude>
dd0ee37794e36c95fec28d1c1f0a085a212811da
Template:ContentFlex
10
5
8
2024-01-02T23:22:33Z
Laggardson
2
Created page with "<templatestyles src="ContentFlex/style.css"/> <div class="content-flex-parent {{#if:{{{use-flex-grow|}}}|content-flex-children-grow|}}" style="{{{style|}}}"> {{{content}}} </div>"
wikitext
text/x-wiki
<templatestyles src="ContentFlex/style.css"/>
<div class="content-flex-parent {{#if:{{{use-flex-grow|}}}|content-flex-children-grow|}}" style="{{{style|}}}">
{{{content}}}
</div>
25adc4ed752d3eb89f0999ecfd53329949b647d0
Template:ColoredBox/style.css
10
6
9
2024-01-02T23:31:04Z
Laggardson
2
Created page with ".mw-tpl-colorbox { box-sizing:border-box; margin:0.5em; border-radius:0.2em; background:#fff; border-width:2px; border-style:solid; border-color:#e2e2e2; } .mw-tpl-colorbox-title { background:#e2e2e2; color:#000000; padding:0.5em 1em 0.5em 1em } .mw-tpl-colorbox-title-icon { opacity:0.8 } .mw-tpl-colorbox-title-corner { float:right; font-size:0.7em } .mw-tpl-colorbox-content { padding:0.5em 1em 0.5em 1em } .mw-tpl-colorbox-content::after { content:""; dis..."
wikitext
text/x-wiki
.mw-tpl-colorbox {
box-sizing:border-box;
margin:0.5em;
border-radius:0.2em;
background:#fff;
border-width:2px;
border-style:solid;
border-color:#e2e2e2;
}
.mw-tpl-colorbox-title {
background:#e2e2e2;
color:#000000;
padding:0.5em 1em 0.5em 1em
}
.mw-tpl-colorbox-title-icon {
opacity:0.8
}
.mw-tpl-colorbox-title-corner {
float:right;
font-size:0.7em
}
.mw-tpl-colorbox-content {
padding:0.5em 1em 0.5em 1em
}
.mw-tpl-colorbox-content::after {
content:"";
display:block;
clear:both
}
fcbc232a1fd92d7e2b06798c1467185745bd68be
30
9
2024-01-03T14:31:04Z
Laggardson
2
wikitext
text/x-wiki
.mw-tpl-colorbox {
box-sizing:border-box;
margin:0.5em;
border-radius:0.2em;
background:#fff;
border-width:2px;
border-style:solid;
border-color:#e2e2e2;
}
.mw-tpl-colorbox-title {
background:#e2e2e2;
color:#000000;
padding:0.5em 1em 0.5em 1em
}
.mw-tpl-colorbox-title-icon {
opacity:0.8
}
.mw-tpl-colorbox-title-corner {
float:right;
font-size:0.7em
}
.mw-tpl-colorbox-content {
padding:0.5em 1em 0.5em 1em
}
.mw-tpl-colorbox-content::after {
content:"";
display:block;
clear:both
}
##test
5444fc3b805d4d9e714f4c13151e1645db68aeb2
32
30
2024-01-03T16:35:15Z
Laggardson
2
wikitext
text/x-wiki
.mw-tpl-colorbox {
box-sizing:border-box;
margin:0.5em;
border-radius:0.2em;
background:#fff;
border-width:2px;
border-style:solid;
border-color:#e2e2e2;
}
.mw-tpl-colorbox-title {
background:#e2e2e2;
color:#000000;
padding:0.5em 1em 0.5em 1em
}
.mw-tpl-colorbox-title-icon {
opacity:0.8
}
.mw-tpl-colorbox-title-corner {
float:right;
font-size:0.7em
}
.mw-tpl-colorbox-content {
padding:0.5em 1em 0.5em 1em
}
.mw-tpl-colorbox-content::after {
content:"";
display:block;
clear:both
}
fcbc232a1fd92d7e2b06798c1467185745bd68be
33
32
2024-01-03T16:35:30Z
Laggardson
2
Laggardson changed the content model of the page [[Template:ColoredBox/style.css]] from "wikitext" to "Sanitized CSS": Adjustment
sanitized-css
text/css
.mw-tpl-colorbox {
box-sizing:border-box;
margin:0.5em;
border-radius:0.2em;
background:#fff;
border-width:2px;
border-style:solid;
border-color:#e2e2e2;
}
.mw-tpl-colorbox-title {
background:#e2e2e2;
color:#000000;
padding:0.5em 1em 0.5em 1em
}
.mw-tpl-colorbox-title-icon {
opacity:0.8
}
.mw-tpl-colorbox-title-corner {
float:right;
font-size:0.7em
}
.mw-tpl-colorbox-content {
padding:0.5em 1em 0.5em 1em
}
.mw-tpl-colorbox-content::after {
content:"";
display:block;
clear:both
}
fcbc232a1fd92d7e2b06798c1467185745bd68be
Sam Richardson
0
7
10
2024-01-02T23:47:42Z
Laggardson
2
Created page with "'''Sam Richardson''' is the GM and host of ''[[Pest Control]]''. == Characters == ===Main Seasons=== {| class="wikitable" ! style="background-color:#FDCE5E" |Season ! style="background-color:#FDCE5E" |Characters |- |''[[Fate]]'' |[[County Sans-Soleil]], [[Claret Holiday]] <sup>([[The Fellowship|WIH Holiday Special]])</sup> |- | rowspan="2" |''[[Norfork]]'' |[[Faction Game (COUNTER/Weight)|Faction game]] participant |- |[[Ibex]] <sup>(Kingdom (COUNTER/Weight)|Kingdo..."
wikitext
text/x-wiki
'''Sam Richardson''' is the GM and host of ''[[Pest Control]]''.
== Characters ==
===Main Seasons===
{| class="wikitable"
! style="background-color:#FDCE5E" |Season
! style="background-color:#FDCE5E" |Characters
|-
|''[[Fate]]''
|[[County Sans-Soleil]], [[Claret Holiday]] <sup>([[The Fellowship|WIH Holiday Special]])</sup>
|-
| rowspan="2" |''[[Norfork]]''
|[[Faction Game (COUNTER/Weight)|Faction game]] participant
|-
|[[Ibex]] <sup>([[Kingdom (COUNTER/Weight)|Kingdom Arc]])</sup>
|-
|}
[[Category:Cast]]
{{Cast}}
e6ace6ec3805825e80bfddf0a238e40390d60a1d
14
10
2024-01-03T01:11:00Z
Laggardson
2
/* Main Seasons */
wikitext
text/x-wiki
'''Sam Richardson''' is the GM and host of ''[[Pest Control]]''.
== Characters ==
===Main Seasons===
{| class="wikitable"
! style="background-color:#FDCE5E" |Season
! style="background-color:#FDCE5E" |Characters
|-
|''[[Fate]]''
|[[Martin Graves]]
|-
| rowspan="2" |''[[Norfork]]''
|[[Faction Game (COUNTER/Weight)|Faction game]] participant
|-
|[[Simon Pip]], [[Sharon Sonnen]], [[Glymmer]], [[Almos Sumati]]<sup>Kingdom Game, Minor Character</sup>
|-
|}
[[Category:Cast]]
{{Cast}}
c71b7d0f526543a3afb14b54a35de3c3e4166669
15
14
2024-01-03T01:11:50Z
Laggardson
2
wikitext
text/x-wiki
'''Sam Richardson''' is the GM and host of ''[[Pest Control]]''.
== Characters ==
===Main Seasons===
{| class="wikitable"
! style="background-color:#FDCE5E" |Season
! style="background-color:#FDCE5E" |Characters
|-
|''[[Fate]]''
|[[Martin Graves]]
|-
| rowspan="2" |''[[Norfork]]''
|[[Simon Pip]], [[Sharon Sonnen]], [[Glymmer]], [[Almos Sumati]]<sup>Kingdom Game, Minor Character</sup>
|-
|}
[[Category:Cast]]
{{Cast}}
02fae0eb263ed7033dfb800aec762b9988d5f5ec
Fate
0
8
11
2024-01-03T00:37:40Z
Laggardson
2
Created page with "{{Infobox season |color_theme=aih |title=Season 1: Fate |image=[[]] |caption=Cover art by [https://twitter.com/shoddyrobot Craig Sheldon] |episodes=28 |release=September 12, 2014 - June 19, 2015 }} '''''Fate''''' (originally known as '''''Queuetimes: Monster of the Week''''') is the first season of ''Pest Control''. It is a game of ''[[Monster of the Week]]''. The first episode was released on [[AltHaven]] on March 24, 2019. It follows a group of found-family monster H..."
wikitext
text/x-wiki
{{Infobox season
|color_theme=aih
|title=Season 1: Fate
|image=[[]]
|caption=Cover art by [https://twitter.com/shoddyrobot Craig Sheldon]
|episodes=28
|release=September 12, 2014 - June 19, 2015
}}
'''''Fate''''' (originally known as '''''Queuetimes: Monster of the Week''''') is the first season of ''Pest Control''. It is a game of ''[[Monster of the Week]]''. The first episode was released on [[AltHaven]] on March 24, 2019.
It follows a group of found-family monster Hunters as they set off on a journey across the United States, dealing with the creatures they encounter and drawing ever nearer to the end of the road...
== Episodes ==
↳ [[List of Fate episodes]]
== Characters ==
=== Player Characters ===
*[[Keeley Stewart]] ([[William White]]): The Expert.
*[[Henrietta Salm]] ([[Jonas Newhouse]]): The Monstrous.
*[[Maggie]] ([[Sam Darr]]): The Spellslinger.
=== Major NPCs ===
''See also'': [[:Category:Fate characters|Fate characters]]
*[[Martin Graves]]:
*[[Henry Sweezle]]:
*[[Jordan "Jojo" Jesigo]]:
*[[Xilin]]:
== Notes==
<references group="note" />
{{Fate episodes}}
<p></p>
{{Seasons}}
{{Navbox}}
[[Category:Fate]]
[[Category:Monster of the Week]]
[[Category:Seasons]]
16d6cc3fe0b71248c84216e53d64205244fa90e8
13
11
2024-01-03T00:40:27Z
Laggardson
2
wikitext
text/x-wiki
{{Infobox season
|color_theme=FF0000
|title=Season 1: Fate
|image=[[]]
|caption=Cover art by [https://twitter.com/shoddyrobot Craig Sheldon]
|episodes=28
|release=September 12, 2014 - June 19, 2015
}}
'''''Fate''''' (originally known as '''''Queuetimes: Monster of the Week''''') is the first season of ''Pest Control''. It is a game of ''[[Monster of the Week]]''. The first episode was released on [[AltHaven]] on March 24, 2019.
It follows a group of found-family monster Hunters as they set off on a journey across the United States, dealing with the creatures they encounter and drawing ever nearer to the end of the road...
== Episodes ==
↳ [[List of Fate episodes]]
== Characters ==
=== Player Characters ===
*[[Keeley Stewart]] ([[William White]]): The Expert.
*[[Henrietta Salm]] ([[Jonas Newhouse]]): The Monstrous.
*[[Maggie]] ([[Sam Darr]]): The Spellslinger.
=== Major NPCs ===
''See also'': [[:Category:Fate characters|Fate characters]]
*[[Martin Graves]]:
*[[Henry Sweezle]]:
*[[Jordan "Jojo" Jesigo]]:
*[[Xilin]]:
== Notes==
<references group="note" />
{{Fate episodes}}
<p></p>
{{Seasons}}
{{Navbox}}
[[Category:Fate]]
[[Category:Monster of the Week]]
[[Category:Seasons]]
fe21a74f351352bfe54f7a1851fc85a3dd3cda01
25
13
2024-01-03T04:36:52Z
Laggardson
2
wikitext
text/x-wiki
{{Infobox season
|color_theme=FF0000
|title=Season 1: Fate
|image=[[]]
|caption=Cover art by [https://twitter.com/shoddyrobot Craig Sheldon]
|episodes=15
|release=March 24, 2019 - December 3, 2019
}}
'''''Fate''''' (originally known as '''''Queuetimes: Monster of the Week''''') is the first season of ''Pest Control''. It is a game of ''[[Monster of the Week]]''. The first episode was released on [[AltHaven]] on March 24, 2019.
It follows a group of found-family monster Hunters as they set off on a journey across the United States, dealing with the creatures they encounter and drawing ever nearer to the end of the road...
== Episodes ==
↳ [[List of Fate episodes]]
== Characters ==
=== Player Characters ===
*[[Keeley Stewart]] ([[William White]]): The Expert.
*[[Henrietta Salm]] ([[Jonas Newhouse]]): The Monstrous.
*[[Maggie]] ([[Sam Darr]]): The Spellslinger.
=== Major NPCs ===
''See also'': [[:Category:Fate characters|Fate characters]]
*[[Martin Graves]]:
*[[Henry Sweezle]]:
*[[Jordan "Jojo" Jesigo]]:
*[[Xilin]]:
== Notes==
<references group="note" />
{{Fate episodes}}
<p></p>
{{Seasons}}
{{Navbox}}
[[Category:Fate]]
[[Category:Monster of the Week]]
[[Category:Seasons]]
19ac7f6342adc0a6c48dc734e90cb42ecbc338cf
Template:Infobox season
10
9
12
2024-01-03T00:38:22Z
Laggardson
2
Created page with "<onlyinclude> <infobox theme-source="color_theme"> <title source="title"> <default>{{PAGENAME}}</default> </title> <image source="image"> <caption source="caption"/> </image> <data source="episodes"> <label>Episodes</label> </data> <data source="runtime"> <label>Runtime</label> </data> <data source="soundtrack"> <label>Soundtrack</label> </data> <data source="release"> <label>Release</label> </data> </infobox><!-- -->{{#ife..."
wikitext
text/x-wiki
<onlyinclude>
<infobox theme-source="color_theme">
<title source="title">
<default>{{PAGENAME}}</default>
</title>
<image source="image">
<caption source="caption"/>
</image>
<data source="episodes">
<label>Episodes</label>
</data>
<data source="runtime">
<label>Runtime</label>
</data>
<data source="soundtrack">
<label>Soundtrack</label>
</data>
<data source="release">
<label>Release</label>
</data>
</infobox><!--
-->{{#ifeq: {{NAMESPACENUMBER}} | 0 | {{#if: {{{color_theme|}}} || [[Category:Infoboxes with missing color theme]] }} | }}</onlyinclude><noinclude>
<br style="clear:both;"/>
{{Documentation}}
[[Category:Infoboxes]]</noinclude>
f0c584e60c80642b574acaf53f778d580831758f
24
12
2024-01-03T04:32:55Z
Laggardson
2
wikitext
text/x-wiki
<onlyinclude>
<infobox theme-source="color_theme">
<title source="title">
<default>{{PAGENAME}}</default>
</title>
<image source="image">
<caption source="caption"/>
</image>
<data source="episodes">
<label>Episodes</label>
</data>
<data source="runtime">
<label>Runtime</label>
</data>
<data source="soundtrack">
<label>Soundtrack</label>
</data>
<data source="release">
<label>Release</label>
</data>
</infobox><!--
-->{{#ifeq: {{NAMESPACENUMBER}} | 0 | {{#if: {{{color_theme|}}} || [[Category:Infoboxes with missing color theme]] }} | }}</onlyinclude><noinclude>
<br style="clear:both;"/>
[[Category:Infoboxes]]</noinclude>
bbc85fb2ce2a8d6adb543cd3891daccf068f9623
List of Fate episodes
0
10
16
2024-01-03T01:15:05Z
Laggardson
2
Created page with "Episodes of Season 1: ''[[Fate]]'', which ran from (date) to (date). {{Episode table | background=#FFB27B | season=1 | title=15 | airdate=10 | aux2=9 | aux2T=Runtime |episodes= {{Episode list |EpisodeNumber2=01 |Title=[[Marielda 01: The City of Light Pt. 1|The City of Light Pt. 1]] |AltDate=July 14, 2016 |Aux2=02:06:13 |ShortSummary=Austin, Art, Janine, Keith and Nick begin worldbuilding for the season, expanding [[Marielda (city)|Marielda]] from a sparse map into a c..."
wikitext
text/x-wiki
Episodes of Season 1: ''[[Fate]]'', which ran from (date) to (date).
{{Episode table | background=#FFB27B | season=1 | title=15 | airdate=10 | aux2=9 | aux2T=Runtime
|episodes=
{{Episode list
|EpisodeNumber2=01
|Title=[[Marielda 01: The City of Light Pt. 1|The City of Light Pt. 1]]
|AltDate=July 14, 2016
|Aux2=02:06:13
|ShortSummary=Austin, Art, Janine, Keith and Nick begin worldbuilding for the season, expanding [[Marielda (city)|Marielda]] from a sparse map into a city filled with turmoil.
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=02
|Title=[[Marielda 02: The City of Light Pt. 2|The City of Light Pt. 2]]
|AltDate=July 21, 2016
|Aux2=01:55:20
|ShortSummary=Marielda's quiet year continues, from the coming of the [[Pala-din]] in midsummer to the threat of the Frost Shepherds' winter arrival.
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=03
|Title=[[Marielda 03: The Crosstown Job Pt. 1|The Crosstown Job Pt. 1]]
|AltDate=August 5, 2016
|Aux2=02:37:15
|ShortSummary=Ali, Jack, Sylvi and Dre build their characters and their crew, [[The Six]], before embarking on their first heist: stealing the plates that control Marielda's new crosstown train.
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=04
|Title=[[Marielda 04: The Crosstown Job Pt. 2|The Crosstown Job Pt. 2]]
|AltDate=August 11, 2016
|Aux2=02:05:04
|ShortSummary=Aboard a rushing train fifty stories over Helianthus Parish, the members of The Six continue their attempt to steal the navigation plates of the Crosstown Express.
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=05
|Title=[[Marielda 05: War and Azaleas|War and Azaleas]]
|AltDate=August 19, 2016
|Aux2=01:29:30
|ShortSummary=The members of have some downtime after their successful heist, but begin to entangle themselves in the consequences of the criminal life.
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=06
|Title=[[Marielda 06: The Valentine Affair Pt. 1|The Valentine Affair Pt. 1]]
|AltDate=August 25, 2016
|Aux2=01:44:57
|ShortSummary=Looking for help to end their war with the [[Fontmen]], The Six embark upon a plan to steal a book from the famously guarded [[Memoriam College (Marielda)|Memoriam College]].
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=07
|Title=[[Marielda 07: The Valentine Affair Pt. 2|The Valentine Affair Pt. 2]]
|AltDate=September 1, 2016
|Aux2=01:37:19
|ShortSummary=[[Aubrey]], [[Sige]] and [[Castille]] enter the library, where they face off with the [[Yellow House]]. Meanwhile, a traumatized [[Hitchcock]] makes his way to the rectory.
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=08
|Title=[[Marielda 08: The Valentine Affair Pt. 3|The Valentine Affair Pt. 3]]
|AltDate=September 9, 2016
|Aux2=01:57:15
|ShortSummary=The gang frees [[Maelgwyn]] from the library vault. Hitchcock has troubling dreams before finding himself running with [[Caroline Fair-Play]] from a [[Rector Sabinia|void nun]].
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=09
|Title=[[Marielda 09: The Valentine Affair Pt. 4|The Valentine Affair Pt. 4]]
|AltDate=September 15, 2016
|Aux2=01:41:48
|ShortSummary=As the situation in and around Memoriam College gets increasingly unstable, the members of The Six do their best to escape with a stolen book and their lives.
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=10
|Title=[[Marielda 10: Four Conversations|Four Conversations]]
|AltDate=September 22, 2016
|Aux2=01:48:48
|ShortSummary=The Six go through an extended downtime period in the months between The Valentine Affair and their final job.
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=11
|Title=[[Marielda 11: The Killing of the King-God Samothes By The Traitor Prince Maelgwyn Pt. 1|The Killing of the King-God Samothes By The Traitor Prince Maelgwyn Pt. 1]]
|AltDate=September 30, 2016
|Aux2=01:35:36
|ShortSummary=The Six plan and begin their heist to kill Samothes, and face off against the Lance Nobles on their way into Samothes' volcano on [[High Sun Day]].
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=12
|Title=[[Marielda 12: The Killing of the King-God Samothes By The Traitor Prince Maelgwyn Pt. 2|The Killing of the King-God Samothes By The Traitor Prince Maelgwyn Pt. 2]]
|AltDate=October 6, 2016
|Aux2=01:34:58
|ShortSummary=The train arrives at the volcano, where everyone is recieved by the [[Primo|Artificer Mundane]], who gives them new clothes. Afterwards, the group explores the volcano and more guests arrive.
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=13
|Title=[[Marielda 13: The Killing of the King-God Samothes By The Traitor Prince Maelgwyn Pt. 3|The Killing of the King-God Samothes By The Traitor Prince Maelgwyn Pt. 3]]
|AltDate=October 13, 2016
|Aux2=01:59:14
|ShortSummary=While exploring, Aubrey clashes with Samot's retinue of mages, and the rest of the group attempt to reconvene in time for dinner.
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=14
|Title=[[Marielda 14: The Killing of the King-God Samothes By The Traitor Prince Maelgwyn Pt. 4|The Killing of the King-God Samothes By The Traitor Prince Maelgwyn Pt. 4]]
|AltDate=October 20, 2016
|Aux2=02:01:30
|ShortSummary=The Six and the Mages follow Maelgwyn down to Samothes' forge. Sige tries and fails to stop Maelgwyn from killing Samothes with the [[Blade in the Dark]].
|LineColor=FFB27B
}}
}}
== Live Episodes==
Several [[Live at the Table]] episodes have been set in [[Marielda (city)|Marielda]] as well, taking place in the timeskip that occurs during [[Marielda 10: Four Conversations]].
{{Episode table | background=#FFB27B | season= | title=22 | airdate=10 | aux2=7 | aux2T=Runtime
|episodes=
{{Episode list
| EpisodeNumber2 = 01
| Title = [[Live at the Table: Misspent Youth]]
| ShortSummary = During the one year gap between "[[Marielda 09: The Valentine Affair Pt. 4|The Valentine Affair Pt. 4]]" and "[[Marielda 10: Four Conversations|Four Conversations]]" episodes, the young students of the mysterious [[The Yellow House|Yellow House]], a school of esoteric and eschatologic studies, defy authority.
| AltDate = October 22, 2017<sup><ref group="note">The game was streamed live on October 22 and released in the podcast feed on December 15.</ref></sup>
| LineColor = FFB27B
| Aux2 = 04:59:07
}}
{{Episode list
| EpisodeNumber2 = 02
| Title = [[GenCon Liveshow Marielda]]
| ShortSummary = In the time jump between "[[Marielda 09: The Valentine Affair Pt. 4|The Valentine Affair Pt. 4]]" and "[[Marielda 10: Four Conversations|Four Conversations]]," Aubrey and Sige find themselves teamed up with a rival gang on a robbery like no other.
| AltDate = August 3, 2019<sup><ref group="note">The game was held at GenCon on August 3, 2019 and released in the podcast feed on July 6, 2022.</ref></sup>
| LineColor = FFB27B
| Aux2 = 02:11:57
}}
{{Episode list
| EpisodeNumber2 = 03
| Title = [[Marathon Livestream: Return to Marielda]]
| ShortSummary = Out-a-towners with mysterious pasts and glorious masks have a spot on the stage and job for [[Hitchcock]], [[Castille]], and the rest: help them steal their names back.
| AltDate = July 4, 2022<sup><ref group="note">The game was streamed live on July 4, with the audio being released in the podcast feed on August 5.</ref></sup>
| LineColor = FFB27B
| Aux2 = 05:04:22
}}}}
==Notes==
{{reflist|group=note}}
{{Marielda episodes}}
{{NavboxMarielda}}
[[Category:Marielda]]
[[Category:Lists of episodes]]
971e852b830b1eb661c4a12ecef9c4ebac712307
Module:Episode table
828
11
17
2024-01-03T02:43:29Z
Laggardson
2
Created page with "-- This module implements {{Episode table}} and {{Episode table/part}}. local HTMLcolor = mw.loadData( 'Module:Color contrast/colors' ) -------------------------------------------------------------------------------- -- EpisodeTable class -- The main class. -------------------------------------------------------------------------------- local contrast_ratio = require('Module:Color contrast')._ratio local EpisodeTable = {} function EpisodeTable.cell(background, width,..."
Scribunto
text/plain
-- This module implements {{Episode table}} and {{Episode table/part}}.
local HTMLcolor = mw.loadData( 'Module:Color contrast/colors' )
--------------------------------------------------------------------------------
-- EpisodeTable class
-- The main class.
--------------------------------------------------------------------------------
local contrast_ratio = require('Module:Color contrast')._ratio
local EpisodeTable = {}
function EpisodeTable.cell(background, width, text, reference)
local cell = mw.html.create('th')
-- Width
local cell_width
if width == 'auto' then
cell_width = 'auto'
elseif tonumber(width) ~= nil then
cell_width = width .. '%'
else
cell_width = nil
end
-- Cell
cell:attr('scope','col')
:css('background',background or '#CCCCFF')
:css('width',cell_width)
:wikitext(text)
-- Reference
if reference and reference ~= '' then
cell:wikitext(" " .. EpisodeTable.reference(reference, background))
end
return cell
end
function EpisodeTable.reference(reference, background)
local link1_cr = contrast_ratio{'#0645AD', background or '#CCCCFF', ['error'] = 0}
local link2_cr = contrast_ratio{'#0B0080', background or '#CCCCFF', ['error'] = 0}
local refspan = mw.html.create('span')
:wikitext(reference)
if link1_cr < 7 or link2_cr < 7 then
refspan
:css('background-color','white')
:css('padding','1px')
:css('display','inline-block')
:css('line-height','50%')
end
return tostring(refspan)
end
function EpisodeTable.abbr(text,title)
local abbr = mw.html.create('abbr')
:attr('title',title)
:wikitext(text)
return tostring(abbr)
end
function EpisodeTable.part(frame,args)
local row = mw.html.create('tr')
local black_cr = contrast_ratio{args.c or '#CCCCFF', 'black', ['error'] = 0}
local white_cr = contrast_ratio{'white', args.c or '#CCCCFF', ['error'] = 0}
local isPartSet = (args.chapter or args.volume or args.part or args.p)
local displaytext = ( (args.chapter and 'Chapter ' .. args.chapter) or (args.volume and 'Volume ' .. args.volume) or ((not args.nopart and isPartSet) and 'Part ' .. (args.part or args.p or '')) or (args.part or args.p or '') )
.. (args.subtitle and ((isPartSet and ": " or "") .. "<em>" .. args.subtitle .. "</em>") or '')
local plainText = require('Module:Plain text')._main
local displayTextAnchor = plainText(displaytext)
row:tag('td')
:attr('colspan', 13)
:attr('id', args.id or displayTextAnchor)
:css('text-align', 'center')
:css('background-color', args.c or '#CCCCFF')
:css('color', black_cr > white_cr and 'black' or 'white')
:wikitext("'''" .. displaytext .. "'''" .. (args.r and " " .. EpisodeTable.reference(args.r, args.c) or ''))
return tostring(row)
end
function EpisodeTable.new(frame,args)
args = args or {}
local categories = ''
local background = (args.background and args.background ~= '' and args.background ~= '#') and args.background or nil
-- Add # to background if necessary
if background ~= nil and HTMLcolor[background] == nil then
background = '#'..(mw.ustring.match(background, '^[%s#]*([a-fA-F0-9]*)[%s]*$') or '')
end
-- Default widths noted by local consensus
local defaultwidths = {};
defaultwidths.overall = 5;
defaultwidths.overall2 = 5;
defaultwidths.season = 5;
defaultwidths.series = 5;
defaultwidths.prodcode = 7;
defaultwidths.viewers = 10;
-- Create episode table
local root = mw.html.create('table')
-- Table width
local table_width = string.gsub(args.total_width or '','%%','')
if args.total_width == 'auto' or args.total_width == '' then
table_width = 'auto'
elseif tonumber(table_width) ~= nil then
table_width = table_width .. '%'
else
table_width = '100%'
end
root
:addClass('wikitable')
:addClass('plainrowheaders')
:addClass('wikiepisodetable')
:css('width', table_width)
-- Caption
if args.show_caption then
-- Visible caption option, with a tracking category
root:tag('caption'):wikitext(args.caption)
categories = categories .. '[[Category:Articles using Template:Episode table with a visible caption]]'
elseif args.caption then
-- If a visible caption isn't defined, then default to the screenreader-only caption
root:tag('caption'):wikitext(frame:expandTemplate{title='Screen reader-only',args={args.caption}})
end
-- Colour contrast; add to category only if it's in the mainspace
local title = mw.title.getCurrentTitle()
local black_cr = contrast_ratio{background, 'black', ['error'] = 0}
local white_cr = contrast_ratio{'white', background, ['error'] = 0}
-- Main row
local mainRow = root:tag('tr')
mainRow
:css('color', background and (black_cr > white_cr and 'black' or 'white') or 'black')
:css('text-align', 'center')
-- Cells
do
local used_season = false
local country = args.country ~= '' and args.country ~= nil
local viewers = (country and args.country or '') .. ' ' .. (country and 'v' or 'V') .. 'iewers' ..
((not args.viewers_type or args.viewers_type ~= '') and '<br />(' .. (args.viewers_type or 'millions') .. ')' or '')
local cellNames = {
{'overall','EpisodeNumber',EpisodeTable.abbr('No.','Number') ..
((args.season or args.series or args.EpisodeNumber2 or args.EpisodeNumber2Series or args.forceoverall) and '<br />'..(args.overall_type or 'overall') or '')},
{'overall2','*',''},
{'season','EpisodeNumber2',EpisodeTable.abbr('No.','Number') .. ' in<br />'..(args.season_type or 'season')},
{'series','EpisodeNumber2Series',EpisodeTable.abbr('No.','Number') .. ' in<br />'..(args.series_type or 'series')},
{'title','Title','Title'},
{'aux1','Aux1',''},
{'director','DirectedBy','Directed by'},
{'writer','WrittenBy','Written by'},
{'aux2','Aux2',''},
{'aux3','Aux3',''},
{'airdate','OriginalAirDate','Original ' .. (args.released and 'release' or 'air') .. ' date'},
{'altdate','AltDate',''},
{'guests','Guests','Guest(s)'},
{'musicalguests','MusicalGuests','Musical/entertainment guest(s)'},
{'prodcode','ProdCode',EpisodeTable.abbr('Prod.','Production') .. '<br />code'},
{'viewers','Viewers',viewers},
{'aux4','Aux4',''}
}
for k,v in pairs(cellNames) do
local thisCell = args[v[1]] or args[v[2]]
if thisCell and (v[1] ~= 'series' or (v[1] == 'series' and used_season == false)) then
if v[1] == 'season' then used_season = true end
if (k <= 3 and thisCell == '') then thisCell = '5' end
if (thisCell == '' and defaultwidths[v[1]]) then thisCell = defaultwidths[v[1]] end
local thisCellT = args[v[1] .. 'T'] or args[v[2] .. 'T']
local thisCellR = args[v[1] .. 'R'] or args[v[2] .. 'R']
mainRow:node(EpisodeTable.cell(background, thisCell, thisCellT or v[3], thisCellR))
end
end
-- Episodes
if args.episodes then
if args.anchor then
args.episodes = string.gsub(args.episodes, "(id=\")(ep%w+\")", "%1" .. args.anchor .. "%2")
end
root:node(args.episodes)
end
end
return (args.dontclose and mw.ustring.gsub(tostring(root), "</table>", "") or tostring(root)) .. categories
end
--------------------------------------------------------------------------------
-- Exports
--------------------------------------------------------------------------------
local p = {}
function p.main(frame)
local args = require('Module:Arguments').getArgs(frame, {
removeBlanks = false,
wrappers = 'Template:Episode table'
})
return EpisodeTable.new(frame,args)
end
function p.part(frame)
local args = require('Module:Arguments').getArgs(frame, {
removeBlanks = false,
wrappers = 'Template:Episode table/part'
})
return EpisodeTable.part(frame,args)
end
function p.ref(frame)
local args = require('Module:Arguments').getArgs(frame, {
removeBlanks = false,
})
return EpisodeTable.reference(args.r,args.b)
end
return p
9f2f8e9a3eadb0e0a98c80d3a2e03949713541ee
William White
0
12
18
2024-01-03T03:12:11Z
Laggardson
2
Created page with "'''William White''' is a cast member on ''Pest Control'’. They also mix the audio for the show, and create original music alongside [[Jonas Newhouse]]. They are also in the band “glass beach”. == Characters == === Main Seasons === {| class="wikitable" |- ! style="background-color:#FDCE5E" |Season ! style="background-color:#FDCE5E" |Role(s) |- |[[Seasons of Hieron|''Seasons of Hieron'']] |[[Hella Varal]] |- | rowspan="2" |''[[Norfork]]'' |[[Kelly Aberdeen]] |- | [..."
wikitext
text/x-wiki
'''William White''' is a cast member on ''Pest Control'’. They also mix the audio for the show, and create original music alongside [[Jonas Newhouse]]. They are also in the band “glass beach”.
== Characters ==
=== Main Seasons ===
{| class="wikitable"
|-
! style="background-color:#FDCE5E" |Season
! style="background-color:#FDCE5E" |Role(s)
|-
|[[Seasons of Hieron|''Seasons of Hieron'']]
|[[Hella Varal]]
|-
| rowspan="2" |''[[Norfork]]''
|[[Kelly Aberdeen]]
|-
| [[Jace Rethal]] <sup>([[Kingdom (COUNTER/Weight)|Kingdom Arc]])</sup>
|-
|[[Marielda (season)|''Marielda'']]
|[[Charter Castille]]
|-
|[[Twilight Mirage|''Twilight Mirage'']]
|[[Tender Sky]]
|-
| rowspan="2" |''[[PARTIZAN]]''
|[[Kal'mera Broun]]
|-
|[[Eiden Teak]] <sup>([[Kingdom (PARTIZAN)|Millennium Break Arc]])</sup>
|-
|''[[Sangfielle]]''
|[[Marn Ancura]]
|-
|''[[PALISADE]]''
|[[Kalvin Brnine]]
|}
{{Friends}}
[[Category:Friends]]
acffce3d82c37e6a2d5504887676d8cce9dac53e
19
18
2024-01-03T03:51:20Z
Laggardson
2
wikitext
text/x-wiki
'''William White''' is a cast member on ''Pest Control'’. They also mix the audio for the show, and create original music alongside [[Jonas Newhouse]]. They are also in the band “glass beach”.
== Characters ==
=== Main Seasons ===
{| class="wikitable"
|-
! style="background-color:#FDCE5E" |Season
! style="background-color:#FDCE5E" |Role(s)
|-
|[[Fate]]
|[[Keeley Stewart]]
|-
| rowspan="2" |''[[Norfork]]''
|[[Kelly Aberdeen]]
|-
| [[Nort Port]] <sup>(Kingdom)</sup>
|-
|[[Liz Borger]] <sup>(Kingdom)</sup>
|-
|[[Twilight Mirage|''Twilight Mirage'']]
|[[Tender Sky]]
|-
| rowspan="2" |''[[PARTIZAN]]''
|[[Kal'mera Broun]]
|-
|[[Eiden Teak]] <sup>([[Kingdom (PARTIZAN)|Millennium Break Arc]])</sup>
|-
|''[[Sangfielle]]''
|[[Marn Ancura]]
|-
|''[[PALISADE]]''
|[[Kalvin Brnine]]
|}
{{Friends}}
[[Category:Friends]]
47b0e193e86488eaacb467b86fc6ad97d2f3de34
20
19
2024-01-03T03:52:23Z
Laggardson
2
/* Main Seasons */
wikitext
text/x-wiki
'''William White''' is a cast member on ''Pest Control'’. They also mix the audio for the show, and create original music alongside [[Jonas Newhouse]]. They are also in the band “glass beach”.
== Characters ==
=== Main Seasons ===
{| class="wikitable"
|-
! style="background-color:#FDCE5E" |Season
! style="background-color:#FDCE5E" |Role(s)
|-
|[[Fate]]
|[[Keeley Stewart]]
|-
| rowspan="2" |''[[Norfork]]''
|[[Kelly Aberdeen]]
|-
| [[Nort Port]] <sup>(Kingdom)</sup>
|-
| [[Liz Borger]] <sup>(Kingdom)</sup>
|-
|[[Twilight Mirage|''Twilight Mirage'']]
|[[Tender Sky]]
|-
| rowspan="2" |''[[PARTIZAN]]''
|[[Kal'mera Broun]]
|-
|[[Eiden Teak]] <sup>([[Kingdom (PARTIZAN)|Millennium Break Arc]])</sup>
|-
|''[[Sangfielle]]''
|[[Marn Ancura]]
|-
|''[[PALISADE]]''
|[[Kalvin Brnine]]
|}
{{Friends}}
[[Category:Friends]]
56540996866ad71715d1565980d275c78fa42b1a
21
20
2024-01-03T04:07:25Z
Laggardson
2
/* Main Seasons */
wikitext
text/x-wiki
'''William White''' is a cast member on ''Pest Control'’. They also mix the audio for the show, and create original music alongside [[Jonas Newhouse]]. They are also in the band “glass beach”.
== Characters ==
=== Main Seasons ===
{| class="wikitable"
|-
! style="background-color:#FDCE5E" |Season
! style="background-color:#FDCE5E" |Role(s)
|-
|[[Fate]]
|[[Keeley Stewart]]
|-
| rowspan="5" |''[[Norfork]]''
|[[Kelly Aberdeen]]
|-
| [[Nort Port]] <ref name= “:1”> [[S2 E10|Kingdom #1]] </ref>, [[Liz Borger]] <ref name= “:1”> [[S2 E10|Kingdom #1]] </ref>,[[Jillian Murphy]] <ref name= “:2”> [[S2 E19|Kingdom #2]] </ref>, [[Leilah Amund]] <ref name= “:2”> [[S2 E19|Kingdom #2]] </ref>
|}
{{Cast}}
[[Category:Cast]]
30361cf6728e2e27db7905f9fc4d34baaa6d5b4d
42
21
2024-01-03T18:11:57Z
Laggardson
2
wikitext
text/x-wiki
'''William White''' is a cast member on ''Pest Control''. They also mix the audio for the show, and create original music alongside [[Jonas Newhouse]]. They are also in the band “glass beach”.
== Characters ==
=== Main Seasons ===
{| class="wikitable"
|-
! style="background-color:#FDCE5E" |Season
! style="background-color:#FDCE5E" |Role(s)
|-
|[[Fate]]
|[[Keeley Stewart]]
|-
| rowspan="5" |''[[Norfork]]''
|[[Kelly Aberdeen]]
|-
| [[Nort Port]] <ref name= “:1”> [[S2 E10|Kingdom #1]] </ref>, [[Liz Borger]] <ref name= “:1”> [[S2 E10|Kingdom #1]] </ref>,[[Jillian Murphy]] <ref name= “:2”> [[S2 E19|Kingdom #2]] </ref>, [[Leilah Amund]] <ref name= “:2”> [[S2 E19|Kingdom #2]] </ref>
|}
{{Cast}}
[[Category:Cast]]
a470384a2299de03c343ab86b79489ae432af078
Template:Infobox character
10
13
22
2024-01-03T04:28:59Z
Laggardson
2
Created page with "<onlyinclude><infobox theme-source="color_theme"> <title source="title"> <default>{{PAGENAME}}</default> </title> <image source="image"> <caption source="caption"/> </image> <group> <header>Basic Information</header> <data source="pronouns"> <label>Pronouns</label> </data> <data source="titles"> <label>Titles</label> </data> <data source="aliases"> <label>Aliases</label> </data> <data source="place_of_or..."
wikitext
text/x-wiki
<onlyinclude><infobox theme-source="color_theme">
<title source="title">
<default>{{PAGENAME}}</default>
</title>
<image source="image">
<caption source="caption"/>
</image>
<group>
<header>Basic Information</header>
<data source="pronouns">
<label>Pronouns</label>
</data>
<data source="titles">
<label>Titles</label>
</data>
<data source="aliases">
<label>Aliases</label>
</data>
<data source="place_of_origin">
<label>Place of Origin</label>
</data>
<data source="people">
<label>People</label>
</data>
</group>
<group collapse="closed" layout="stacked">
<header>Connections</header>
<data source="affiliations">
<label>Af­fil­i­a­tion(s)</label>
</data>
<data source="relations">
<label>Re­la­tion­ships</label>
</data>
</group>
<group>
<header>Meta Info</header>
<data source="season">
<label>Season</label>
</data>
<data source="game">
<label>Game</label>
</data>
<data source="playbook">
<label>Playbook</label>
</data>
<data source="player">
<label>Player</label>
</data>
<data source="appears_in">
<label>Appears In</label>
</data>
<data source="debut">
<label>Debut</label>
</data>
</group>
</infobox><!--
-->{{#ifeq: {{NAMESPACENUMBER}} | 0 | {{#if: {{{color_theme|}}} || [[Category:Infoboxes with missing color theme]] }} | }}</onlyinclude>
<noinclude>
{{Documentation}}
[[Category:Infoboxes]]
{{#ifeq: {{NAMESPACENUMBER}} | 0 | [[Category:Characters]]}}
</noinclude>
76f101f103d1d1ed76ef83cb05baf105ee609bf6
23
22
2024-01-03T04:29:57Z
Laggardson
2
wikitext
text/x-wiki
<onlyinclude><infobox theme-source="color_theme">
<title source="title">
<default>{{PAGENAME}}</default>
</title>
<image source="image">
<caption source="caption"/>
</image>
<group>
<header>Basic Information</header>
<data source="pronouns">
<label>Pronouns</label>
</data>
<data source="titles">
<label>Titles</label>
</data>
<data source="aliases">
<label>Aliases</label>
</data>
<data source="place_of_origin">
<label>Place of Origin</label>
</data>
<data source="people">
<label>People</label>
</data>
</group>
<group collapse="closed" layout="stacked">
<header>Connections</header>
<data source="affiliations">
<label>Af­fil­i­a­tion(s)</label>
</data>
<data source="relations">
<label>Re­la­tion­ships</label>
</data>
</group>
<group>
<header>Meta Info</header>
<data source="season">
<label>Season</label>
</data>
<data source="game">
<label>Game</label>
</data>
<data source="playbook">
<label>Playbook</label>
</data>
<data source="player">
<label>Player</label>
</data>
<data source="appears_in">
<label>Appears In</label>
</data>
<data source="debut">
<label>Debut</label>
</data>
</group>
</infobox><!--
-->{{#ifeq: {{NAMESPACENUMBER}} | 0 | {{#if: {{{color_theme|}}} || [[Category:Infoboxes with missing color theme]] }} | }}</onlyinclude>
<noinclude>
[[Category:Infoboxes]]
{{#ifeq: {{NAMESPACENUMBER}} | 0 | [[Category:Characters]]}}
</noinclude>
88c914dc1363764c9cd2d21f0c776392c1e0ed3e
Module:Navbox
828
14
26
2024-01-03T14:07:54Z
Laggardson
2
Created page with "-- -- This module implements {{Navbox}} -- local p = {} local navbar = require('Module:Navbar')._navbar local getArgs -- lazily initialized local args local border local listnums local ODD_EVEN_MARKER = '\127_ODDEVEN_\127' local RESTART_MARKER = '\127_ODDEVEN0_\127' local REGEX_MARKER = '\127_ODDEVEN(%d?)_\127' local function striped(wikitext) -- Return wikitext with markers replaced for odd/even striping. -- Child (subgroup) navboxes are flagged with a category th..."
Scribunto
text/plain
--
-- This module implements {{Navbox}}
--
local p = {}
local navbar = require('Module:Navbar')._navbar
local getArgs -- lazily initialized
local args
local border
local listnums
local ODD_EVEN_MARKER = '\127_ODDEVEN_\127'
local RESTART_MARKER = '\127_ODDEVEN0_\127'
local REGEX_MARKER = '\127_ODDEVEN(%d?)_\127'
local function striped(wikitext)
-- Return wikitext with markers replaced for odd/even striping.
-- Child (subgroup) navboxes are flagged with a category that is removed
-- by parent navboxes. The result is that the category shows all pages
-- where a child navbox is not contained in a parent navbox.
local orphanCat = '[[Category:Navbox orphans]]'
if border == 'subgroup' and args.orphan ~= 'yes' then
-- No change; striping occurs in outermost navbox.
return wikitext .. orphanCat
end
local first, second = 'odd', 'even'
if args.evenodd then
if args.evenodd == 'swap' then
first, second = second, first
else
first = args.evenodd
second = first
end
end
local changer
if first == second then
changer = first
else
local index = 0
changer = function (code)
if code == '0' then
-- Current occurrence is for a group before a nested table.
-- Set it to first as a valid although pointless class.
-- The next occurrence will be the first row after a title
-- in a subgroup and will also be first.
index = 0
return first
end
index = index + 1
return index % 2 == 1 and first or second
end
end
local regex = orphanCat:gsub('([%[%]])', '%%%1')
return (wikitext:gsub(regex, ''):gsub(REGEX_MARKER, changer)) -- () omits gsub count
end
local function processItem(item, nowrapitems)
if item:sub(1, 2) == '{|' then
-- Applying nowrap to lines in a table does not make sense.
-- Add newlines to compensate for trim of x in |parm=x in a template.
return '\n' .. item ..'\n'
end
if nowrapitems == 'yes' then
local lines = {}
for line in (item .. '\n'):gmatch('([^\n]*)\n') do
local prefix, content = line:match('^([*:;#]+)%s*(.*)')
if prefix and not content:match('^<span class="nowrap">') then
line = prefix .. '<span class="nowrap">' .. content .. '</span>'
end
table.insert(lines, line)
end
item = table.concat(lines, '\n')
end
if item:match('^[*:;#]') then
return '\n' .. item ..'\n'
end
return item
end
-- Separate function so that we can evaluate properly whether hlist should
-- be added by the module
local function has_navbar()
return args.navbar ~= 'off' and args.navbar ~= 'plain' and not
(not args.name and mw.getCurrentFrame():getParent():getTitle():gsub('/sandbox$', '') == 'Template:Navbox')
end
local function renderNavBar(titleCell)
if has_navbar() then
titleCell:wikitext(navbar{
args.name,
-- we depend on this being mini = 1 when the navbox module decides
-- to add hlist templatestyles. we also depend on navbar outputting
-- a copy of the hlist templatestyles.
mini = 1,
fontstyle = (args.basestyle or '') .. ';' .. (args.titlestyle or '') .. ';background:none transparent;border:none;box-shadow:none; padding:0;'
})
end
end
--
-- Title row
--
local function renderTitleRow(tbl)
if not args.title then return end
local titleRow = tbl:tag('tr')
if args.titlegroup then
titleRow
:tag('th')
:attr('scope', 'row')
:addClass('navbox-group')
:addClass(args.titlegroupclass)
:cssText(args.basestyle)
:cssText(args.groupstyle)
:cssText(args.titlegroupstyle)
:wikitext(args.titlegroup)
end
local titleCell = titleRow:tag('th'):attr('scope', 'col')
if args.titlegroup then
titleCell
:addClass('navbox-title1')
end
local titleColspan = 2
if args.imageleft then titleColspan = titleColspan + 1 end
if args.image then titleColspan = titleColspan + 1 end
if args.titlegroup then titleColspan = titleColspan - 1 end
titleCell
:cssText(args.basestyle)
:cssText(args.titlestyle)
:addClass('navbox-title')
:attr('colspan', titleColspan)
renderNavBar(titleCell)
titleCell
:tag('div')
-- id for aria-labelledby attribute
:attr('id', mw.uri.anchorEncode(args.title))
:addClass(args.titleclass)
:css('font-size', '114%')
:css('margin', '0 4em')
:wikitext(processItem(args.title))
end
--
-- Above/Below rows
--
local function getAboveBelowColspan()
local ret = 2
if args.imageleft then ret = ret + 1 end
if args.image then ret = ret + 1 end
return ret
end
local function renderAboveRow(tbl)
if not args.above then return end
tbl:tag('tr')
:tag('td')
:addClass('navbox-abovebelow')
:addClass(args.aboveclass)
:cssText(args.basestyle)
:cssText(args.abovestyle)
:attr('colspan', getAboveBelowColspan())
:tag('div')
-- id for aria-labelledby attribute, if no title
:attr('id', args.title and nil or mw.uri.anchorEncode(args.above))
:wikitext(processItem(args.above, args.nowrapitems))
end
local function renderBelowRow(tbl)
if not args.below then return end
tbl:tag('tr')
:tag('td')
:addClass('navbox-abovebelow')
:addClass(args.belowclass)
:cssText(args.basestyle)
:cssText(args.belowstyle)
:attr('colspan', getAboveBelowColspan())
:tag('div')
:wikitext(processItem(args.below, args.nowrapitems))
end
--
-- List rows
--
local function renderListRow(tbl, index, listnum)
local row = tbl:tag('tr')
if index == 1 and args.imageleft then
row
:tag('td')
:addClass('navbox-image')
:addClass(args.imageclass)
:css('width', '1px') -- Minimize width
:css('padding', '0px 2px 0px 0px')
:cssText(args.imageleftstyle)
:attr('rowspan', #listnums)
:tag('div')
:wikitext(processItem(args.imageleft))
end
if args['group' .. listnum] then
local groupCell = row:tag('th')
-- id for aria-labelledby attribute, if lone group with no title or above
if listnum == 1 and not (args.title or args.above or args.group2) then
groupCell
:attr('id', mw.uri.anchorEncode(args.group1))
end
groupCell
:attr('scope', 'row')
:addClass('navbox-group')
:addClass(args.groupclass)
:cssText(args.basestyle)
:css('width', args.groupwidth or '1%') -- If groupwidth not specified, minimize width
groupCell
:cssText(args.groupstyle)
:cssText(args['group' .. listnum .. 'style'])
:wikitext(args['group' .. listnum])
end
local listCell = row:tag('td')
if args['group' .. listnum] then
listCell
:addClass('navbox-list1')
else
listCell:attr('colspan', 2)
end
if not args.groupwidth then
listCell:css('width', '100%')
end
local rowstyle -- usually nil so cssText(rowstyle) usually adds nothing
if index % 2 == 1 then
rowstyle = args.oddstyle
else
rowstyle = args.evenstyle
end
local listText = args['list' .. listnum]
local oddEven = ODD_EVEN_MARKER
if listText:sub(1, 12) == '</div><table' then
-- Assume list text is for a subgroup navbox so no automatic striping for this row.
oddEven = listText:find('<th[^>]*"navbox%-title"') and RESTART_MARKER or 'odd'
end
listCell
:css('padding', '0px')
:cssText(args.liststyle)
:cssText(rowstyle)
:cssText(args['list' .. listnum .. 'style'])
:addClass('navbox-list')
:addClass('navbox-' .. oddEven)
:addClass(args.listclass)
:addClass(args['list' .. listnum .. 'class'])
:tag('div')
:css('padding', (index == 1 and args.list1padding) or args.listpadding or '0em 0.25em')
:wikitext(processItem(listText, args.nowrapitems))
if index == 1 and args.image then
row
:tag('td')
:addClass('navbox-image')
:addClass(args.imageclass)
:css('width', '1px') -- Minimize width
:css('padding', '0px 0px 0px 2px')
:cssText(args.imagestyle)
:attr('rowspan', #listnums)
:tag('div')
:wikitext(processItem(args.image))
end
end
--
-- Tracking categories
--
local function needsHorizontalLists()
if border == 'subgroup' or args.tracking == 'no' then
return false
end
local listClasses = {
['plainlist'] = true, ['hlist'] = true, ['hlist hnum'] = true,
['hlist hwrap'] = true, ['hlist vcard'] = true, ['vcard hlist'] = true,
['hlist vevent'] = true,
}
return not (listClasses[args.listclass] or listClasses[args.bodyclass])
end
-- there are a lot of list classes in the wild, so we have a function to find
-- them and add their TemplateStyles
local function addListStyles()
local frame = mw.getCurrentFrame()
-- TODO?: Should maybe take a table of classes for e.g. hnum, hwrap as above
-- I'm going to do the stupid thing first though
-- Also not sure hnum and hwrap are going to live in the same TemplateStyles
-- as hlist
local function _addListStyles(htmlclass, templatestyles)
local class_args = { -- rough order of probability of use
'bodyclass', 'listclass', 'aboveclass', 'belowclass', 'titleclass',
'navboxclass', 'groupclass', 'titlegroupclass', 'imageclass'
}
local patterns = {
'^' .. htmlclass .. '$',
'%s' .. htmlclass .. '$',
'^' .. htmlclass .. '%s',
'%s' .. htmlclass .. '%s'
}
local found = false
for _, arg in ipairs(class_args) do
for _, pattern in ipairs(patterns) do
if mw.ustring.find(args[arg] or '', pattern) then
found = true
break
end
end
if found then break end
end
if found then
return frame:extensionTag{
name = 'templatestyles', args = { src = templatestyles }
}
else
return ''
end
end
local hlist_styles = ''
-- navbar always has mini = 1, so here (on this wiki) we can assume that
-- we don't need to output hlist styles in navbox again.
if not has_navbar() then
hlist_styles = _addListStyles('hlist', 'Flatlist/styles.css')
end
local plainlist_styles = _addListStyles('plainlist', 'Plainlist/styles.css')
return hlist_styles .. plainlist_styles
end
local function hasBackgroundColors()
for _, key in ipairs({'titlestyle', 'groupstyle', 'basestyle', 'abovestyle', 'belowstyle'}) do
if tostring(args[key]):find('background', 1, true) then
return true
end
end
end
local function hasBorders()
for _, key in ipairs({'groupstyle', 'basestyle', 'abovestyle', 'belowstyle'}) do
if tostring(args[key]):find('border', 1, true) then
return true
end
end
end
local function isIllegible()
-- require('Module:Color contrast') absent on mediawiki.org
return false
end
local function getTrackingCategories()
local cats = {}
if needsHorizontalLists() then table.insert(cats, 'Navigational boxes without horizontal lists') end
if hasBackgroundColors() then table.insert(cats, 'Navboxes using background colours') end
if isIllegible() then table.insert(cats, 'Potentially illegible navboxes') end
if hasBorders() then table.insert(cats, 'Navboxes using borders') end
return cats
end
local function renderTrackingCategories(builder)
local title = mw.title.getCurrentTitle()
if title.namespace ~= 10 then return end -- not in template space
local subpage = title.subpageText
if subpage == 'doc' or subpage == 'sandbox' or subpage == 'testcases' then return end
for _, cat in ipairs(getTrackingCategories()) do
builder:wikitext('[[Category:' .. cat .. ']]')
end
end
--
-- Main navbox tables
--
local function renderMainTable()
local tbl = mw.html.create('table')
:addClass('nowraplinks')
:addClass(args.bodyclass)
if args.title and (args.state ~= 'plain' and args.state ~= 'off') then
if args.state == 'collapsed' then args.state = 'mw-collapsed' end
tbl
:addClass('mw-collapsible')
:addClass(args.state or 'autocollapse')
end
tbl:css('border-spacing', 0)
if border == 'subgroup' or border == 'none' then
tbl
:addClass('navbox-subgroup')
:cssText(args.bodystyle)
:cssText(args.style)
else -- regular navbox - bodystyle and style will be applied to the wrapper table
tbl
:addClass('navbox-inner')
:css('background', 'transparent')
:css('color', 'inherit')
end
tbl:cssText(args.innerstyle)
renderTitleRow(tbl)
renderAboveRow(tbl)
for i, listnum in ipairs(listnums) do
renderListRow(tbl, i, listnum)
end
renderBelowRow(tbl)
return tbl
end
function p._navbox(navboxArgs)
args = navboxArgs
listnums = {}
for k, _ in pairs(args) do
if type(k) == 'string' then
local listnum = k:match('^list(%d+)$')
if listnum then table.insert(listnums, tonumber(listnum)) end
end
end
table.sort(listnums)
border = mw.text.trim(args.border or args[1] or '')
if border == 'child' then
border = 'subgroup'
end
-- render the main body of the navbox
local tbl = renderMainTable()
-- get templatestyles
local frame = mw.getCurrentFrame()
local base_templatestyles = frame:extensionTag{
name = 'templatestyles', args = { src = 'Module:Navbox/styles.css' }
}
local templatestyles = ''
if args.templatestyles and args.templatestyles ~= '' then
templatestyles = frame:extensionTag{
name = 'templatestyles', args = { src = args.templatestyles }
}
end
local res = mw.html.create()
-- 'navbox-styles' exists for two reasons:
-- 1. To wrap the styles to work around phab: T200206 more elegantly. Instead
-- of combinatorial rules, this ends up being linear number of CSS rules.
-- 2. To allow MobileFrontend to rip the styles out with 'nomobile' such that
-- they are not dumped into the mobile view.
res:tag('div')
:addClass('navbox-styles')
:addClass('nomobile')
:wikitext(base_templatestyles .. templatestyles)
:done()
-- render the appropriate wrapper around the navbox, depending on the border param
if border == 'none' then
local nav = res:tag('div')
:attr('role', 'navigation')
:wikitext(addListStyles())
:node(tbl)
-- aria-labelledby title, otherwise above, otherwise lone group
if args.title or args.above or (args.group1 and not args.group2) then
nav:attr('aria-labelledby', mw.uri.anchorEncode(args.title or args.above or args.group1))
else
nav:attr('aria-label', 'Navbox')
end
elseif border == 'subgroup' then
-- We assume that this navbox is being rendered in a list cell of a
-- parent navbox, and is therefore inside a div with padding:0em 0.25em.
-- We start with a </div> to avoid the padding being applied, and at the
-- end add a <div> to balance out the parent's </div>
res
:wikitext('</div>')
:wikitext(addListStyles())
:node(tbl)
:wikitext('<div>')
else
local nav = res:tag('div')
:attr('role', 'navigation')
:addClass('navbox')
:addClass(args.navboxclass)
:cssText(args.bodystyle)
:cssText(args.style)
:css('padding', '3px')
:wikitext(addListStyles())
:node(tbl)
-- aria-labelledby title, otherwise above, otherwise lone group
if args.title or args.above or (args.group1 and not args.group2) then
nav:attr('aria-labelledby', mw.uri.anchorEncode(args.title or args.above or args.group1))
else
nav:attr('aria-label', 'Navbox')
end
end
if (args.nocat or 'false'):lower() == 'false' then
renderTrackingCategories(res)
end
return striped(tostring(res))
end
function p.navbox(frame)
if not getArgs then
getArgs = require('Module:Arguments').getArgs
end
args = getArgs(frame, {wrappers = {'Template:Navbox', 'Template:Navbox subgroup'}})
if frame.args.border then
-- This allows Template:Navbox_subgroup to use {{#invoke:Navbox|navbox|border=...}}.
args.border = frame.args.border
end
-- Read the arguments in the order they'll be output in, to make references number in the right order.
local _
_ = args.title
_ = args.above
for i = 1, 20 do
_ = args["group" .. tostring(i)]
_ = args["list" .. tostring(i)]
end
_ = args.below
return p._navbox(args)
end
return p
c0c6a393f9e4e6bc23da95a76f9023013170e3c9
Module:Navbox/style.css
828
15
27
2024-01-03T14:09:44Z
Laggardson
2
Created page with ".navbox { border: 1px solid #aaa; box-sizing: border-box; width: 100%; margin: auto; clear: both; font-size: 88%; text-align: center; padding: 1px; } .navbox-inner, .navbox-subgroup { width: 100%; } .navbox + .navbox-styles + .navbox { /* Single pixel border between adjacent navboxes */ margin-top: -1px; } .navbox th, .navbox-title, .navbox-abovebelow { text-align: center; /* Title and above/below styles */ padding-left: 1em; padding-right: 1em; } th.n..."
sanitized-css
text/css
.navbox {
border: 1px solid #aaa;
box-sizing: border-box;
width: 100%;
margin: auto;
clear: both;
font-size: 88%;
text-align: center;
padding: 1px;
}
.navbox-inner,
.navbox-subgroup {
width: 100%;
}
.navbox + .navbox-styles + .navbox {
/* Single pixel border between adjacent navboxes */
margin-top: -1px;
}
.navbox th,
.navbox-title,
.navbox-abovebelow {
text-align: center;
/* Title and above/below styles */
padding-left: 1em;
padding-right: 1em;
}
th.navbox-group {
/* Group style */
white-space: nowrap;
/* @noflip */
text-align: right;
}
.navbox,
.navbox-subgroup {
background: #fdfdfd;
}
.navbox-list {
/* Must match background color */
border-color: #fdfdfd;
}
.navbox th,
.navbox-title {
/* Level 1 color */
background: #eaeeff;
}
.navbox-abovebelow,
th.navbox-group,
.navbox-subgroup .navbox-title {
/* Level 2 color */
background: #ddddff;
}
.navbox-subgroup .navbox-group,
.navbox-subgroup .navbox-abovebelow {
/* Level 3 color */
background: #e6e6ff;
}
.navbox-even {
/* Even row striping */
background: #f7f7f7;
}
.navbox-odd {
/* Odd row striping */
background: transparent;
}
th.navbox-title1 {
border-left: 2px solid #fdfdfd;
width: 100%;
}
td.navbox-list1 {
text-align: left;
border-left-width: 2px;
border-left-style: solid;
}
.navbox .hlist td dl,
.navbox .hlist td ol,
.navbox .hlist td ul,
.navbox td.hlist dl,
.navbox td.hlist ol,
.navbox td.hlist ul {
/* Adjust hlist padding in navboxes */
padding: 0.125em 0;
}
.navbox .hlist dd,
.navbox .hlist dt,
.navbox .hlist li {
/* Nowrap list items in navboxes */
white-space: nowrap;
}
.navbox .hlist dd dl,
.navbox .hlist dt dl,
.navbox .hlist li ol,
.navbox .hlist li ul {
/* But allow parent list items to be wrapped */
white-space: normal;
}
ol + .navbox-styles + .navbox,
ul + .navbox-styles + .navbox {
/* Prevent lists from clinging to navboxes */
margin-top: 0.5em;
}
c4c305dae15bacc8c3240430775fab74f0c10e06
Template:ContentFlex/style.css
10
16
28
2024-01-03T14:18:18Z
Laggardson
2
Created page with ".content-flex-parent { display: flex; align-items: stretch; align-content: center; } .content-flex-children-grow > * { flex-grow: 1; }"
sanitized-css
text/css
.content-flex-parent {
display: flex;
align-items: stretch;
align-content: center;
}
.content-flex-children-grow > * {
flex-grow: 1;
}
c09d98931ad1b4a5311b59f5099208fe2e8b25ff
Kelly Aberdeen
0
17
29
2024-01-03T14:28:11Z
Laggardson
2
Created page with "{{Infobox Character |color_theme = |title = Kelly Aberdeen |playbook = The Crooked |place_of_origin = Norfork |player = [[William White]] |image1 = |season = ''[[Norfork]]’’ |pronouns = he/him |caption1 = }} == Appearance == == Personality == == Background == == Abilities == ==Gallery== == Notes == {{Reflist|group=note}} == References == {{Reflist}} [[Category:PCs]] [[Category:Norfork characters]] [[Category:]] [[Category:]] [[Category:]]"
wikitext
text/x-wiki
{{Infobox Character
|color_theme =
|title = Kelly Aberdeen
|playbook = The Crooked
|place_of_origin = Norfork
|player = [[William White]]
|image1 =
|season = ''[[Norfork]]’’
|pronouns = he/him
|caption1 =
}}
== Appearance ==
== Personality ==
== Background ==
== Abilities ==
==Gallery==
== Notes ==
{{Reflist|group=note}}
== References ==
{{Reflist}}
[[Category:PCs]]
[[Category:Norfork characters]]
[[Category:]]
[[Category:]]
[[Category:]]
7a69e70b0fae6a651f44f1677bf26d0f0203f3dd
35
29
2024-01-03T16:39:54Z
Laggardson
2
wikitext
text/x-wiki
{{Infobox Character
|color_theme =
|title = Kelly Aberdeen
|playbook = The Crooked
|place_of_origin = Norfork
|player = [[William White]]
|image1 =
|aliases = The Cryptid
|season = ''[[Norfork]]’’
|pronouns = he/him
|caption1 =
}}
== Appearance ==
== Personality ==
== Background ==
== Abilities ==
==Gallery==
== Notes ==
{{Reflist|group=note}}
== References ==
{{Reflist}}
[[Category:PCs]]
[[Category:Norfork characters]]
[[Category:]]
[[Category:]]
[[Category:]]
b9fcff7120b3cfc0c64708f06e8152df34d82fbd
36
35
2024-01-03T16:40:35Z
Laggardson
2
wikitext
text/x-wiki
{{Infobox Character
|color_theme =
|title = Kelly Aberdeen
|playbook = The Crooked
|place_of_origin = Norfork
|player = [[William White]]
|image1 =
|aliases = The Cryptid
|season = ''[[Norfork]] ''
|pronouns = he/him
|caption1 =
}}
== Appearance ==
== Personality ==
== Background ==
== Abilities ==
==Gallery==
== Notes ==
{{Reflist|group=note}}
== References ==
{{Reflist}}
[[Category:PCs]]
[[Category:Norfork characters]]
[[Category:]]
[[Category:]]
[[Category:]]
c7231edaca75b67cfd8cbe34f23a04ede6ebbbe2
37
36
2024-01-03T16:47:25Z
Laggardson
2
wikitext
text/x-wiki
{{Infobox Character
|color_theme =
|title = Kelly Aberdeen
|playbook = The Crooked
|place_of_origin = Norfork
|player = [[William White]]
|image1 =
|aliases = The Cryptid
|season = ''[[Norfork]] ''
|pronouns = he/him
|caption1 = test of caption
}}
== Appearance ==
== Personality ==
== Background ==
== Abilities ==
==Gallery==
== Notes ==
{{Reflist|group=note}}
== References ==
{{Reflist}}
[[Category:PCs]]
[[Category:Norfork characters]]
[[Category:]]
[[Category:]]
[[Category:]]
2a13691821bf142efe7658a211111f260bb3d627
38
37
2024-01-03T17:21:44Z
Laggardson
2
wikitext
text/x-wiki
{{Infobox Character
|color_theme =
|title = Kelly Aberdeen
|playbook = The Crooked
|place_of_origin = [[Norfork (City)|Norfork]]
|player = [[William White]]
|image1 =
|aliases = The Cryptid
|season = ''[[Norfork]]''
|pronouns = he/him
|game = [[Monster of the Week]]
|caption1 = test of caption
|debut = [[Norfork 01: Messages]]
}}
== Appearance ==
== Personality ==
== Background ==
== Abilities ==
==Gallery==
== Notes ==
{{Reflist|group=note}}
== References ==
{{Reflist}}
[[Category:PCs]]
[[Category:Norfork characters]]
[[Category:]]
[[Category:]]
[[Category:]]
0deb936efd914a33f6710397a2f5354bc053b276
Template:Infobox Character
10
18
34
2024-01-03T16:38:21Z
Laggardson
2
Created page with "<onlyinclude><infobox theme-source="color_theme"> <title source="title"> <default>{{PAGENAME}}</default> </title> <image source="image"> <caption source="caption"/> </image> <group> <header>Basic Information</header> <data source="pronouns"> <label>Pronouns</label> </data> <data source="titles"> <label>Titles</label> </data> <data source="aliases"> <label>Aliases</label> </data> <data source="place_of_or..."
wikitext
text/x-wiki
<onlyinclude><infobox theme-source="color_theme">
<title source="title">
<default>{{PAGENAME}}</default>
</title>
<image source="image">
<caption source="caption"/>
</image>
<group>
<header>Basic Information</header>
<data source="pronouns">
<label>Pronouns</label>
</data>
<data source="titles">
<label>Titles</label>
</data>
<data source="aliases">
<label>Aliases</label>
</data>
<data source="place_of_origin">
<label>Place of Origin</label>
</data>
<data source="people">
<label>People</label>
</data>
</group>
<group collapse="closed" layout="stacked">
<header>Connections</header>
<data source="affiliations">
<label>Af­fil­i­a­tion(s)</label>
</data>
<data source="relations">
<label>Re­la­tion­ships</label>
</data>
</group>
<group>
<header>Meta Info</header>
<data source="season">
<label>Season</label>
</data>
<data source="game">
<label>Game</label>
</data>
<data source="playbook">
<label>Playbook</label>
</data>
<data source="player">
<label>Player</label>
</data>
<data source="appears_in">
<label>Appears In</label>
</data>
<data source="debut">
<label>Debut</label>
</data>
</group>
</infobox><!--
-->{{#ifeq: {{NAMESPACENUMBER}} | 0 | {{#if: {{{color_theme|}}} || [[Category:Infoboxes with missing color theme]] }} | }}</onlyinclude>
<noinclude>
{{Documentation}}
[[Category:Infoboxes]]
{{#ifeq: {{NAMESPACENUMBER}} | 0 | [[Category:Characters]]}}
</noinclude>
76f101f103d1d1ed76ef83cb05baf105ee609bf6
Template:Home season list item
10
19
40
2024-01-03T18:00:01Z
Laggardson
2
Created page with "<onlyinclude><templatestyles src="Home season list item/styles.css"/><div class="home-season-list-item">{{#if: {{{ filename| }}} | [[File: {{{filename}}} |200px|link={{{imagepage}}}]] | <div style="height:200px;width:200px; background-color:#ccc; display:flex; align-items:center; justify-content:center; font-size:18pt; color:#666">TBA</div> }} <p> {{{text}}} </p></div></onlyinclude> <noinclude> Usage example {{Home season list item |filename= |link= Sangfielle (setting..."
wikitext
text/x-wiki
<onlyinclude><templatestyles src="Home season list item/styles.css"/><div class="home-season-list-item">{{#if: {{{ filename| }}} | [[File: {{{filename}}} |200px|link={{{imagepage}}}]] | <div style="height:200px;width:200px; background-color:#ccc; display:flex; align-items:center; justify-content:center; font-size:18pt; color:#666">TBA</div> }} <p> {{{text}}} </p></div></onlyinclude>
<noinclude>
Usage example
{{Home season list item
|filename=
|link= Sangfielle (setting)
|text= [[Sangfielle]]
}}
<pre>
{{Home season list item
|filename=
|link= Sangfielle (setting)
|text= [[Sangfielle]]
}}
</pre>
</noinclude>
4c2f2a1ba452adea6dc7f24e262c3c072532732f
Template:Home season list item/styles.css
10
20
41
2024-01-03T18:00:22Z
Laggardson
2
Created page with ".home-season-list-item { margin:0.5em; } .home-season-list-item img { object-fit:cover; width:200px; height:200px; }"
sanitized-css
text/css
.home-season-list-item {
margin:0.5em;
}
.home-season-list-item img {
object-fit:cover;
width:200px;
height:200px;
}
76656f59ff18fa3c0a98b203332fce8530df170f
Jonas Newhouse
0
21
43
2024-01-03T18:12:37Z
Laggardson
2
Created page with "'''Jonas Newhouse''' is a cast member on ''Pest Control''. They also mix the audio for the show, and create original music alongside [[William White]]. They are also in the band “glass beach”."
wikitext
text/x-wiki
'''Jonas Newhouse''' is a cast member on ''Pest Control''. They also mix the audio for the show, and create original music alongside [[William White]]. They are also in the band “glass beach”.
d80412ebe89b2d2375226cb7b76cba5cd6f68a11
44
43
2024-01-03T19:14:09Z
Laggardson
2
wikitext
text/x-wiki
'''Jonas Newhouse''' is a cast member on ''Pest Control''. They also mix the audio for the show, and create original music alongside [[William White]]. They are also in the band “glass beach”.
== Characters ==
=== Main Seasons ===
{| class="wikitable"
|-
! style="background-color:#FDCE5E" |Season
! style="background-color:#FDCE5E" |Role(s)
|-
|''[[Fate]]''
|[[Henrietta Salm]]
|-
| rowspan="5" |''[[Norfork]]''
|[[Rabbit Moon]]
|-
| [[Al Adams]] <ref name= “:1”> [[S2 E10|Kingdom #1]] </ref>, [[Siobhan Clement]] <ref name= “:1”> [[S2 E10|Kingdom #1]] </ref>,[[Rober Maricelli]] <ref name= “:2”> [[S2 E19|Kingdom #2]] </ref>, [[Perry Commonlaw]] <ref name= “:2”> [[S2 E19|Kingdom #2]] </ref>
|}
{{Cast}}
[[Category:Cast]]
4da7bbd5e1448f82fd87161c9119e482fd44f2de
Category:Fate characters
14
22
45
2024-01-03T19:18:33Z
Laggardson
2
Created page with "[[Category:Fate characters]]"
wikitext
text/x-wiki
[[Category:Fate characters]]
190bd05948b123ebda0ba7949210a3343802b5a5
Norfork
0
23
46
2024-01-03T19:21:12Z
Laggardson
2
Created page with "{{Infobox season |color_theme=FF0000 |title=Season 1: Fate |image=[[]] |caption=Cover art by [https://twitter.com/shoddyrobot Craig Sheldon] |episodes=15 |release=March 24, 2019 - December 3, 2019 }} '''''Norfork''''' is the second season of ''Pest Control''. It primarily uses the ''[[Monster of the Week]]'' system, while also making forays into other games. The first episode was released on October 30th, 2022. It follows a group of found-family monster Hunters as they..."
wikitext
text/x-wiki
{{Infobox season
|color_theme=FF0000
|title=Season 1: Fate
|image=[[]]
|caption=Cover art by [https://twitter.com/shoddyrobot Craig Sheldon]
|episodes=15
|release=March 24, 2019 - December 3, 2019
}}
'''''Norfork''''' is the second season of ''Pest Control''. It primarily uses the ''[[Monster of the Week]]'' system, while also making forays into other games. The first episode was released on October 30th, 2022.
It follows a group of found-family monster Hunters as they set off on a journey across the United States,
184664245ab8b1d8d67313a24ab437a19be948f9
47
46
2024-01-03T19:28:28Z
Laggardson
2
wikitext
text/x-wiki
{{Infobox season
|color_theme=FF0000
|title=Season 2: Norfork
|image=[[]]
|caption=Cover art by [https://twitter.com/shoddyrobot Craig Sheldon]
|episodes=27
|release=October 30, 2022 - present
}}
'''''Norfork''''' is the second season of ''Pest Control''. It primarily uses the ''[[Monster of the Week]]'' system, while also making forays into other games. The first episode was released on October 30th, 2022.
It follows a group of found-family monster Hunters as they set off on a journey across the United States,
c86b9ea3dd438a26b026523c6b1ffe62c14523e1
48
47
2024-01-03T19:33:04Z
Laggardson
2
wikitext
text/x-wiki
{{Infobox season
|color_theme=FF0000
|title=Season 2: Norfork
|image=[[]]
|caption=Cover art by [https://twitter.com/shoddyrobot Craig Sheldon]
|episodes=27
|release=October 30, 2022 - present
}}
'''''Norfork''''' is the second season of ''Pest Control''. It primarily uses the ''[[Monster of the Week]]'' system, while also making forays into other games. The first episode was released on October 30th, 2022.
It follows a trio of friends living in the edge-city of Norfork as it adapts to the open presence of [[Myriad|Myriads]] and the encroachment of [[The City]].
069f40b58fe56cf5590dad13db0c796c26f15012
49
48
2024-01-03T19:35:23Z
Laggardson
2
wikitext
text/x-wiki
''(For the town itself, see ''[[Norfork (location)|Norfork]]'')''
{{Infobox season
|color_theme=FF0000
|title=Season 2: Norfork
|image=[[]]
|caption=Cover art by [https://twitter.com/shoddyrobot Craig Sheldon]
|episodes=27
|release=October 30, 2022 - present
}}
'''''Norfork''''' is the second season of ''Pest Control''. It primarily uses the ''[[Monster of the Week]]'' system, while also making forays into other games. The first episode was released on October 30th, 2022.
It follows a trio of friends living in the edge-city of Norfork as it adapts to the open presence of [[Myriad|Myriads]] and the encroachment of [[The City]].
b4a87e7fbdb750ed6a53f7ba482ec52264ca6ea4
50
49
2024-01-03T19:35:37Z
Laggardson
2
wikitext
text/x-wiki
''(For the town itself, see ''[[Norfork (location)|Norfork]]'')''
{{Infobox season
|color_theme=FF0000
|title=Season 2: Norfork
|image=[[]]
|caption=Cover art by [https://twitter.com/shoddyrobot Craig Sheldon]
|episodes=27
|release=October 30, 2022 - present
}}
'''''Norfork''''' is the second season of ''Pest Control''. It primarily uses the ''[[Monster of the Week]]'' system, while also making forays into other games. The first episode was released on October 30th, 2022.
It follows a trio of friends living in the edge-city of Norfork as it adapts to the open presence of [[Myriad|Myriads]] and the encroachment of [[The City]].
fe91e0c799abdd8535a589d8a2ecdee219583f38
Sam Darr
0
24
51
2024-01-03T19:37:36Z
Laggardson
2
Created page with "'''Sam Darr''' is a cast member on ''Pest Control''. She is responsible for the pixel-art images of the characters, as well as the show’s social media."
wikitext
text/x-wiki
'''Sam Darr''' is a cast member on ''Pest Control''. She is responsible for the pixel-art images of the characters, as well as the show’s social media.
e37b4ea26ce04846b51edd901633c2a366496c45
52
51
2024-01-03T19:41:38Z
Laggardson
2
wikitext
text/x-wiki
'''Sam Darr''' is a cast member on ''Pest Control''. She is responsible for the pixel-art images of the characters, as well as the show’s social media.
== Characters ==
=== Main Seasons ===
{| class="wikitable"
|-
! style="background-color:#FDCE5E" |Season
! style="background-color:#FDCE5E" |Role(s)
|-
|''[[Fate]]''
|[[Maggie Thornback]]
|-
| rowspan="5" |''[[Norfork]]''
|[[Nammi]]
|-
| [[Berg Bergson]] <ref name= “:1”> [[S2 E10|Kingdom #1]] </ref>, [[Becca Cairn]] <ref name= “:1”> [[S2 E10|Kingdom #1]] </ref>,[[Tammana Henming]] <ref name= “:2”> [[S2 E19|Kingdom #2]] </ref>, [[Valentina]] <ref name= “:2”> [[S2 E19|Kingdom #2]] </ref>
|}
{{Cast}}
[[Category:Cast]]
433a65793b29aabce65a7384d4d1ef8b96b144be
Template:Reflist
10
25
53
2024-01-03T19:46:01Z
Laggardson
2
Created page with "<div class="reflist <!-- -->{{#if: {{{1|}}} | columns {{#iferror: {{#ifexpr: {{{1|1}}} > 1 }} | references-column-width | references-column-count references-column-count-{{#if:1|{{{1}}}}} }} | {{#if: {{{colwidth|}}} | references-column-width }} }}" style="<!-- -->{{#if: {{{1|}}} | {{#iferror: {{#ifexpr: {{{1|1}}} > 1 }} | {{column-width|{{#if:1|{{{1}}}}}}} | {{column-count|{{#if:1|{{{1}}}}}}} }} | {{#if: {{{colwidth|}}}..."
wikitext
text/x-wiki
<div class="reflist <!--
-->{{#if: {{{1|}}}
| columns {{#iferror: {{#ifexpr: {{{1|1}}} > 1 }}
| references-column-width
| references-column-count references-column-count-{{#if:1|{{{1}}}}} }}
| {{#if: {{{colwidth|}}}
| references-column-width }} }}" style="<!--
-->{{#if: {{{1|}}}
| {{#iferror: {{#ifexpr: {{{1|1}}} > 1 }}
| {{column-width|{{#if:1|{{{1}}}}}}}
| {{column-count|{{#if:1|{{{1}}}}}}} }}
| {{#if: {{{colwidth|}}}
| {{column-width|{{{colwidth}}}}} }} }} list-style-type: <!--
-->{{{liststyle|{{#switch: {{{group|}}}
| upper-alpha
| upper-roman
| lower-alpha
| lower-greek
| lower-roman = {{{group}}}
| #default = decimal}}}}};">
{{#tag:references|{{{refs|}}}|group={{{group|}}}}}</div><noinclude>
{{documentation}}[[Category:Citation templates]]</noinclude>
9e8c0db25b20a0310b3f561935f7068980b0e861
Kelly Aberdeen
0
17
54
38
2024-01-03T19:50:12Z
Laggardson
2
/* Abilities */
wikitext
text/x-wiki
{{Infobox Character
|color_theme =
|title = Kelly Aberdeen
|playbook = The Crooked
|place_of_origin = [[Norfork (City)|Norfork]]
|player = [[William White]]
|image1 =
|aliases = The Cryptid
|season = ''[[Norfork]]''
|pronouns = he/him
|game = [[Monster of the Week]]
|caption1 = test of caption
|debut = [[Norfork 01: Messages]]
}}
== Appearance ==
== Personality ==
== Background ==
== Abilities ==
=== Advancements ===
+1 Sharp (episode)
Precise Strike. When you inflict harm on a monster, you can aim for a weak spot. Roll +Tough. On a 10+ you inflict +2 harm. On a 7-9 you inflict +1 harm.On a miss, you leave yourself open to the monster.
==Gallery==
== Notes ==
{{Reflist|group=note}}
== References ==
{{Reflist}}
[[Category:PCs]]
[[Category:Norfork characters]]
[[Category:]]
[[Category:]]
[[Category:]]
4c44c239f47122bfa1104a4e54bde060ee96a2e9
58
54
2024-01-03T20:22:52Z
Laggardson
2
wikitext
text/x-wiki
{{Infobox Character
|color_theme =
|title = Kelly Aberdeen
|playbook = The Crooked
|place_of_origin = [[Norfork (City)|Norfork]]
|player = [[William White]]
|image1 = Kelly_Aberdeen.png
|aliases = The Cryptid
|season = ''[[Norfork]]''
|pronouns = he/him
|game = [[Monster of the Week]]
|caption1 = test of caption
|debut = [[Norfork 01: Messages]]
}}
== Appearance ==
== Personality ==
== Background ==
== Abilities ==
=== Advancements ===
+1 Sharp (episode)
Precise Strike. When you inflict harm on a monster, you can aim for a weak spot. Roll +Tough. On a 10+ you inflict +2 harm. On a 7-9 you inflict +1 harm.On a miss, you leave yourself open to the monster.
==Gallery==
== Notes ==
{{Reflist|group=note}}
== References ==
{{Reflist}}
[[Category:PCs]]
[[Category:Norfork characters]]
[[Category:]]
[[Category:]]
[[Category:]]
a5313eeafafecf7f3b60dcbbef4d40600c1bda6e
60
58
2024-01-03T20:25:11Z
Laggardson
2
wikitext
text/x-wiki
{{Infobox Character
|color_theme =
|title = Kelly Aberdeen
|playbook = The Crooked
|place_of_origin = [[Norfork (City)|Norfork]]
|player = [[William White]]
|image1 = Rabbit_Moon.png
|aliases = The Cryptid
|season = ''[[Norfork]]''
|pronouns = he/him
|game = [[Monster of the Week]]
|caption1 = test of caption
|debut = [[Norfork 01: Messages]]
}}
== Appearance ==
== Personality ==
== Background ==
== Abilities ==
=== Advancements ===
+1 Sharp (episode)
Precise Strike. When you inflict harm on a monster, you can aim for a weak spot. Roll +Tough. On a 10+ you inflict +2 harm. On a 7-9 you inflict +1 harm.On a miss, you leave yourself open to the monster.
==Gallery==
== Notes ==
{{Reflist|group=note}}
== References ==
{{Reflist}}
[[Category:PCs]]
[[Category:Norfork characters]]
[[Category:]]
[[Category:]]
[[Category:]]
b3d1950958d1b2b27592b9e8c78cc3029ceff4fa
61
60
2024-01-03T20:40:15Z
Laggardson
2
/* Abilities */
wikitext
text/x-wiki
{{Infobox Character
|color_theme =
|title = Kelly Aberdeen
|playbook = The Crooked
|place_of_origin = [[Norfork (City)|Norfork]]
|player = [[William White]]
|image1 = Rabbit_Moon.png
|aliases = The Cryptid
|season = ''[[Norfork]]''
|pronouns = he/him
|game = [[Monster of the Week]]
|caption1 = test of caption
|debut = [[Norfork 01: Messages]]
}}
== Appearance ==
== Personality ==
== Background ==
== Abilities ==
'''Burglar'''. When you break into a secure location, roll +Sharp. On a 10+ pick three, on a 7-9 pick two: you get in undetected, you get out undetected, you don’t leave a mess, you find what you were after.
'''Deal with the Devil''': You sold your soul to the Devil. Pick one or two things you got out of the deal: wealth, fame, youth, sensual gratification, skill (add +1 to two ratings). Payment is due either when you die, in six months (if you picked two things) or otherwise in a year.
'''Guardian''': You have a mystical ally (perhaps a spirit, alien, or cryptid) who helps and defends you. Define them, and their powers, with the Keeper’s agreement. Their look is one of: invisible, an intangible spirit thing, a weird creature, disguised as an animal, or disguised as a person.
=== Advancements ===
'''+1 Sharp''' (episode)
'''Precise Strike'''. When you inflict harm on a monster, you can aim for a weak spot. Roll +Tough. On a 10+ you inflict +2 harm. On a 7-9 you inflict +1 harm.On a miss, you leave yourself open to the monster. (episode)
'''Devastating'''. When you inflict harm, you may inflict +1 harm. (Ep17)
'''Crew'''. You have a regular crew, a team of three or four people who will help you out with pretty much anything. They count as a team. (Ep20)
==Gallery==
== Notes ==
{{Reflist|group=note}}
== References ==
{{Reflist}}
[[Category:PCs]]
[[Category:Norfork characters]]
[[Category:]]
[[Category:]]
[[Category:]]
6b49508627f031395b5aecaca138b3a8f4448b9a
62
61
2024-01-03T20:41:54Z
Laggardson
2
/* Gallery */
wikitext
text/x-wiki
{{Infobox Character
|color_theme =
|title = Kelly Aberdeen
|playbook = The Crooked
|place_of_origin = [[Norfork (City)|Norfork]]
|player = [[William White]]
|image1 = Rabbit_Moon.png
|aliases = The Cryptid
|season = ''[[Norfork]]''
|pronouns = he/him
|game = [[Monster of the Week]]
|caption1 = test of caption
|debut = [[Norfork 01: Messages]]
}}
== Appearance ==
== Personality ==
== Background ==
== Abilities ==
'''Burglar'''. When you break into a secure location, roll +Sharp. On a 10+ pick three, on a 7-9 pick two: you get in undetected, you get out undetected, you don’t leave a mess, you find what you were after.
'''Deal with the Devil''': You sold your soul to the Devil. Pick one or two things you got out of the deal: wealth, fame, youth, sensual gratification, skill (add +1 to two ratings). Payment is due either when you die, in six months (if you picked two things) or otherwise in a year.
'''Guardian''': You have a mystical ally (perhaps a spirit, alien, or cryptid) who helps and defends you. Define them, and their powers, with the Keeper’s agreement. Their look is one of: invisible, an intangible spirit thing, a weird creature, disguised as an animal, or disguised as a person.
=== Advancements ===
'''+1 Sharp''' (episode)
'''Precise Strike'''. When you inflict harm on a monster, you can aim for a weak spot. Roll +Tough. On a 10+ you inflict +2 harm. On a 7-9 you inflict +1 harm.On a miss, you leave yourself open to the monster. (episode)
'''Devastating'''. When you inflict harm, you may inflict +1 harm. (Ep17)
'''Crew'''. You have a regular crew, a team of three or four people who will help you out with pretty much anything. They count as a team. (Ep20)
==Gallery==
[[Kelly Aberdeen.png|Kelly Abrdeen.png]]
== Notes ==
{{Reflist|group=note}}
== References ==
{{Reflist}}
[[Category:PCs]]
[[Category:Norfork characters]]
[[Category:]]
[[Category:]]
[[Category:]]
f27c966fc4b6a637bd603d6735bcfec7363cdd6c
63
62
2024-01-03T20:42:19Z
Laggardson
2
wikitext
text/x-wiki
{{Infobox Character
|color_theme =
|title = Kelly Aberdeen
|playbook = The Crooked
|place_of_origin = [[Norfork (City)|Norfork]]
|player = [[William White]]
|image1 = Rabbit_Moon.png
|aliases = The Cryptid
|season = ''[[Norfork]]''
|pronouns = he/him
|game = [[Monster of the Week]]
|caption1 = test of caption
|debut = [[Norfork 01: Messages]]
}}
== Appearance ==
== Personality ==
== Background ==
== Abilities ==
'''Burglar'''. When you break into a secure location, roll +Sharp. On a 10+ pick three, on a 7-9 pick two: you get in undetected, you get out undetected, you don’t leave a mess, you find what you were after.
'''Deal with the Devil''': You sold your soul to the Devil. Pick one or two things you got out of the deal: wealth, fame, youth, sensual gratification, skill (add +1 to two ratings). Payment is due either when you die, in six months (if you picked two things) or otherwise in a year.
'''Guardian''': You have a mystical ally (perhaps a spirit, alien, or cryptid) who helps and defends you. Define them, and their powers, with the Keeper’s agreement. Their look is one of: invisible, an intangible spirit thing, a weird creature, disguised as an animal, or disguised as a person.
=== Advancements ===
'''+1 Sharp''' (episode)
'''Precise Strike'''. When you inflict harm on a monster, you can aim for a weak spot. Roll +Tough. On a 10+ you inflict +2 harm. On a 7-9 you inflict +1 harm.On a miss, you leave yourself open to the monster. (episode)
'''Devastating'''. When you inflict harm, you may inflict +1 harm. (Ep17)
'''Crew'''. You have a regular crew, a team of three or four people who will help you out with pretty much anything. They count as a team. (Ep20)
==Gallery==
[[Kelly_Aberdeen.png]]
== Notes ==
{{Reflist|group=note}}
== References ==
{{Reflist}}
[[Category:PCs]]
[[Category:Norfork characters]]
[[Category:]]
[[Category:]]
[[Category:]]
278a7b2d2f51dc11d482180ba0115ce466a13a1a
64
63
2024-01-03T20:43:26Z
Laggardson
2
wikitext
text/x-wiki
{{Infobox Character
|color_theme =
|title = Kelly Aberdeen
|playbook = The Crooked
|place_of_origin = [[Norfork (City)|Norfork]]
|player = [[William White]]
|image1 = Rabbit_Moon.png
|aliases = The Cryptid
|season = ''[[Norfork]]''
|pronouns = he/him
|game = [[Monster of the Week]]
|caption1 = test of caption
|debut = [[Norfork 01: Messages]]
}}
== Appearance ==
== Personality ==
== Background ==
== Abilities ==
'''Burglar'''. When you break into a secure location, roll +Sharp. On a 10+ pick three, on a 7-9 pick two: you get in undetected, you get out undetected, you don’t leave a mess, you find what you were after.
'''Deal with the Devil''': You sold your soul to the Devil. Pick one or two things you got out of the deal: wealth, fame, youth, sensual gratification, skill (add +1 to two ratings). Payment is due either when you die, in six months (if you picked two things) or otherwise in a year.
'''Guardian''': You have a mystical ally (perhaps a spirit, alien, or cryptid) who helps and defends you. Define them, and their powers, with the Keeper’s agreement. Their look is one of: invisible, an intangible spirit thing, a weird creature, disguised as an animal, or disguised as a person.
=== Advancements ===
'''+1 Sharp''' (episode)
'''Precise Strike'''. When you inflict harm on a monster, you can aim for a weak spot. Roll +Tough. On a 10+ you inflict +2 harm. On a 7-9 you inflict +1 harm.On a miss, you leave yourself open to the monster. (episode)
'''Devastating'''. When you inflict harm, you may inflict +1 harm. (Ep17)
'''Crew'''. You have a regular crew, a team of three or four people who will help you out with pretty much anything. They count as a team. (Ep20)
==Gallery==
[[File:Kelly_Aberdeen.png|200px|thumb|left|Caption]]
== Notes ==
{{Reflist|group=note}}
== References ==
{{Reflist}}
[[Category:PCs]]
[[Category:Norfork characters]]
[[Category:]]
[[Category:]]
[[Category:]]
6c11ecb0ca30c43ced7833ac8860ddda0233860d
65
64
2024-01-03T20:45:45Z
Laggardson
2
wikitext
text/x-wiki
{{Infobox Character
|color_theme =
|title = Kelly Aberdeen
|playbook = The Crooked
|place_of_origin = [[Norfork (City)|Norfork]]
|player = [[William White]]
|image1 = [[File:Kelly_Aberdeen.png]]
|aliases = The Cryptid
|season = ''[[Norfork]]''
|pronouns = he/him
|game = [[Monster of the Week]]
|caption1 = test of caption
|debut = [[Norfork 01: Messages]]
}}
== Appearance ==
== Personality ==
== Background ==
== Abilities ==
'''Burglar'''. When you break into a secure location, roll +Sharp. On a 10+ pick three, on a 7-9 pick two: you get in undetected, you get out undetected, you don’t leave a mess, you find what you were after.
'''Deal with the Devil''': You sold your soul to the Devil. Pick one or two things you got out of the deal: wealth, fame, youth, sensual gratification, skill (add +1 to two ratings). Payment is due either when you die, in six months (if you picked two things) or otherwise in a year.
'''Guardian''': You have a mystical ally (perhaps a spirit, alien, or cryptid) who helps and defends you. Define them, and their powers, with the Keeper’s agreement. Their look is one of: invisible, an intangible spirit thing, a weird creature, disguised as an animal, or disguised as a person.
=== Advancements ===
'''+1 Sharp''' (episode)
'''Precise Strike'''. When you inflict harm on a monster, you can aim for a weak spot. Roll +Tough. On a 10+ you inflict +2 harm. On a 7-9 you inflict +1 harm.On a miss, you leave yourself open to the monster. (episode)
'''Devastating'''. When you inflict harm, you may inflict +1 harm. (Ep17)
'''Crew'''. You have a regular crew, a team of three or four people who will help you out with pretty much anything. They count as a team. (Ep20)
==Gallery==
[[File:Kelly_Aberdeen.png|200px|thumb|left|Caption]]
== Notes ==
{{Reflist|group=note}}
== References ==
{{Reflist}}
[[Category:PCs]]
[[Category:Norfork characters]]
[[Category:]]
[[Category:]]
[[Category:]]
8336c45164c50aa3ea11242e8bbd2366fa27f755
File:Norfork coverart.png
6
26
55
2024-01-03T20:18:16Z
Laggardson
2
Main coverart for Season 2: Norfork
wikitext
text/x-wiki
== Summary ==
Main coverart for Season 2: Norfork
6763e9dcb28ee1fed360a633b1f5cfc5af7bebf2
Main Page
0
1
56
6
2024-01-03T20:19:05Z
Laggardson
2
wikitext
text/x-wiki
{{ColoredBox
|title=Welcome!
|background-title-color=#ff0000
|center-title=true
|center-content=true
|content=
Welcome to Pest Control Wiki - a wiki for the actual-play podcast ''[[Pest Control]]''!
<p><strong>Official Links</strong><br> [https://twitter.com/PestControlPod Twitter] • [https://cohost.org/pestcontrolpod Cohost] • [https://discord.gg/uv9bzF6RPY Discord] </p>
<p><strong>Contribute to the Wiki</strong><br> <strong>{{NUMBEROFARTICLES}} PAGES</strong> • [[Main_Page|Getting Started]]</p>
}}
{{ColoredBox
|title=Seasons
|background-title-color=#ff0000
|center-title=true
|content =
{{ContentFlex
|style=flex-wrap:wrap;justify-content:center;flex-grow:0
|content=
{{Home season list item
|filename=
|imagepage=
|text='''''[[Fate]]'''''
}}
{{Home season list item
|filename= norfork_coverart.png
|imagepage=
|text='''''[[Norfork]]'''''
}}
}}
|center-content=true
}}
}}
{{ColoredBox
|title = The Cast
|background-title-color=#ff0000
|center-content=true|center-title=true
|content =
[[Sam Richardson]] • [[William White]] • [[Jonas Newhouse]] • [[Sam Darr]]
}}
__NOTOC__
== Welcome to {{SITENAME}}! ==
This Main Page was created automatically and it seems it hasn't been replaced yet.
=== For the bureaucrat(s) of this wiki ===
Hello, and welcome to your new wiki! Thank you for choosing Miraheze for the hosting of your wiki, we hope you will enjoy our hosting.
You can immediately start working on your wiki or whenever you want.
Need help? No problem! We will help you with your wiki as needed. To start, try checking out these helpful links:
* [[mw:Special:MyLanguage/Help:Contents|MediaWiki guide]] (e.g. navigation, editing, deleting pages, blocking users)
* [[meta:Special:MyLanguage/FAQ|Miraheze FAQ]]
* [[meta:Special:MyLanguage/Request features|Request settings changes on your wiki]]. (Extensions, Skin and Logo/Favicon changes should be done through [[Special:ManageWiki]] on your wiki, see [[meta:Special:MyLanguage/ManageWiki|ManageWiki]] for more information.)
==== I still don't understand X! ====
Well, that's no problem. Even if something isn't explained in the documentation/FAQ, we are still happy to help you. You can find us here:
* [[meta:Special:MyLanguage/Help center|On our own Miraheze wiki]]
* On [[phab:|Phabricator]]
* On [https://miraheze.org/discord Discord]
* On IRC in #miraheze on irc.libera.chat ([irc://irc.libera.chat/%23miraheze direct link]; [https://web.libera.chat/?channel=#miraheze webchat])
=== For visitors of this wiki ===
Hello, the default Main Page of this wiki (this page) has not yet been replaced by the bureaucrat(s) of this wiki. The bureaucrat(s) might still be working on a Main Page, so please check again later!
3690f76d6b22d71e54a2583888e5c8205efe2970
File:Kelly Aberdeen.png
6
27
57
2024-01-03T20:22:16Z
Laggardson
2
Official character art for Kelly Aberdeen
wikitext
text/x-wiki
== Summary ==
Official character art for Kelly Aberdeen
0a07ba0159b4870f53ec93c9ebc1074e9a28f23d
File:Rabbit Moon.png
6
28
59
2024-01-03T20:24:20Z
Laggardson
2
Official character art for Rabbit Moon.
wikitext
text/x-wiki
== Summary ==
Official character art for Rabbit Moon.
8571e2252cae6e08b887bc2d210b8599c7c2f4aa
Module:Episode list
828
29
66
2024-01-03T20:49:35Z
Laggardson
2
Created page with "local p = {} -- This module requires the use of the following modules: local colorContrastModule = require('Module:Color contrast') local htmlColor = mw.loadData('Module:Color contrast/colors') local delinkModule = require('Module:Delink') local langModule = require("Module:Lang") local mathModule = require('Module:Math') local tableEmptyCellModule = require('Module:Table empty cell') local yesNoModule = require('Module:Yesno') -- mw.html object for the generated row...."
Scribunto
text/plain
local p = {}
-- This module requires the use of the following modules:
local colorContrastModule = require('Module:Color contrast')
local htmlColor = mw.loadData('Module:Color contrast/colors')
local delinkModule = require('Module:Delink')
local langModule = require("Module:Lang")
local mathModule = require('Module:Math')
local tableEmptyCellModule = require('Module:Table empty cell')
local yesNoModule = require('Module:Yesno')
-- mw.html object for the generated row.
local row
-- Variable that will decide the colspan= of the Short Summary cell.
local nonNilParams = 0
-- Variable that will keep track if a TBA value was entered.
local cellValueTBA = false
-- Variable that handles the assigned tracking categories.
local trackingCategories = ""
-- List of tracking categories.
local trackingCategoryList = {
["air_dates"] = "[[Category:Episode lists with unformatted air dates]]",
["alt_air_dates"] = "[[Category:Episode lists with incorrectly formatted alternate air dates]]",
["faulty_line_colors"] = "[[Category:Episode lists with faulty line colors]]",
["non_compliant_line_colors"] = "[[Category:Episode lists with non-compliant line colors]]",
["default_line_colors"] = "[[Category:Episode list using the default LineColor]]",
["row_deviations"] = "[[Category:Episode lists with row deviations]]",
["invalid_top_colors"] = "[[Category:Episode lists with invalid top colors]]",
["tba_values"] = "[[Category:Episode lists with TBA values]]",
["nonmatching_numbered_parameters"] = "[[Category:Episode lists with a non-matching set of numbered parameters]]",
["raw_unformatted_storyteleplay"] = "[[Category:Episode lists with unformatted story or teleplay credits]]"
}
-- List of parameter names in this order.
local cellNameList = {
'Aux1',
'DirectedBy',
'WrittenBy',
'Aux2',
'Aux3',
'OriginalAirDate',
'AltDate',
'Guests',
'MusicalGuests',
'ProdCode',
'Viewers',
'Aux4'
}
-- List of pairs which cannot be used together
local excludeList = {
['Guests'] = 'Aux1',
['MusicalGuests'] = 'Aux2'
}
-- List of cells that have parameter groups
local parameterGroupCells = {}
local firstParameterGroupCell
-- List of title parameter names in this order.
-- List used for multi title lists.
local titleList = {
'Title',
'RTitle',
'AltTitle',
'RAltTitle',
'NativeTitle',
'TranslitTitle',
}
-- Local function which is used to retrieve the episode number or production code number,
-- without any additional text.
local function idTrim(val, search)
local valFind = string.find(val, search)
if (valFind == nil) then
return val
else
return string.sub(val, 0, valFind-1)
end
end
-- Local function which is used to validate that a parameter has an actual value.
local function hasValue(param)
if (param ~= nil and param ~= "") then
return true
else
return false
end
end
-- Local function which is used to create a table data cell.
local function createTableData(text, rowSpan, textAlign)
if (rowSpan ~= nil and tonumber(rowSpan) > 1) then
row:tag('td')
:attr('rowspan', rowSpan)
:wikitext(text)
else
row:tag('td')
:css('text-align', textAlign)
:wikitext(text)
end
end
-- Local function which is used to add a tracking category to the page.
local function addTrackingCategory(category)
trackingCategories = trackingCategories .. category
end
-- Local function which is used to create a Short Summary row.
local function createShortSummaryRow(args, lineColor)
-- fix for lists in the Short Summary
local shortSummaryText = args.ShortSummary
if (shortSummaryText:match('^[*:;#]') or shortSummaryText:match('^{|')) then
shortSummaryText = '<span></span>\n' .. shortSummaryText
end
if (shortSummaryText:match('\n[*:;#]')) then
shortSummaryText = shortSummaryText .. '\n<span></span>'
end
local shortSummaryCell = mw.html.create('td')
:addClass('description')
:css('border-bottom', 'solid 3px ' .. lineColor)
:attr('colspan', nonNilParams)
:newline()
:wikitext(shortSummaryText)
return mw.html.create('tr')
:addClass('expand-child')
:node(shortSummaryCell)
end
-- Local function which is used to add tracking categories for Top Color issues.
local function addTopColorTrackingCategories(args)
if (hasValue(args.TopColor)) then
addTrackingCategory(trackingCategoryList["row_deviations"])
-- Track top colors that have a color contrast rating below AAA with
-- respect to text color, link color, or visited link color. See
-- [[WP:COLOR]] for more about color contrast requirements.
local textContrastRatio = colorContrastModule._ratio{args.TopColor, 'black', ['error'] = 0}
local linkContrastRatio = colorContrastModule._ratio{args.TopColor, '#0B0080', ['error'] = 0}
local visitedLinkContrastRatio = colorContrastModule._ratio{args.TopColor, '#0645AD', ['error'] = 0}
if (textContrastRatio < 7 or linkContrastRatio < 7 or visitedLinkContrastRatio < 7) then
addTrackingCategory(trackingCategoryList["invalid_top_colors"])
end
end
end
-- Local function which is used to add tracking categories for Line Color issues.
local function addLineColorTrackingCategories(args)
if (hasValue(args.LineColor)) then
local blackContrastRatio = colorContrastModule._ratio{args.LineColor, 'black', ['error'] = 0}
local whiteContrastRatio = colorContrastModule._ratio{'white', args.LineColor, ['error'] = 0}
else
addTrackingCategory(trackingCategoryList["default_line_colors"])
end
end
-- Local function which is used to remove wiki-links from repated information in rowspans.
-- Used for Doctor Who serials, where the director and writer are the same for each part of serial.
local function removeWikilinks(args, v)
return delinkModule._delink{args[v]}
end
-- Local function which is used to set the text of an empty cell
-- with either "TBD" or "N/A".
-- Set to N/A if viewers haven't been available for four weeks, else set it as TBD.
local function setTBDStatus(args)
local month, day, year = args.OriginalAirDate:gsub(" ", " "):match("(%a+) (%d+), (%d+)")
if (month == nil) then
day, month, year = args.OriginalAirDate:gsub(" ", " "):match("(%d+) (%a+) (%d+)")
end
if (day == nil) then
return tableEmptyCellModule._main({alt_text = "TBD"})
else
-- List of months.
local monthList = {
['January'] = 1,
['February'] = 2,
['March'] = 3,
['April'] = 4,
['May'] = 5,
['June'] = 6,
['July'] = 7,
['August'] = 8,
['September'] = 9,
['October'] = 10,
['November'] = 11,
['December'] = 12
}
if not monthList[month] then
error('Invalid month ' .. month)
end
local seconds = os.time() - os.time({year = year, month = monthList[month], day = day, hour = 0, min = 0, sec = 0})
if (seconds >= 60 * 60 * 24 * 7 * 4) then
return tableEmptyCellModule._main({alt_text = "N/A"})
else
return tableEmptyCellModule._main({alt_text = "TBD"})
end
end
end
-- Local function which is used to create an empty cell.
local function createEmptyCell(args, v, unsetParameterGroup)
if (unsetParameterGroup) then
args[v] = tableEmptyCellModule._main({alt_text = "N/A"})
elseif (v == 'Viewers' and hasValue(args.OriginalAirDate)) then
args[v] = setTBDStatus(args)
else
args[v] = tableEmptyCellModule._main({})
end
end
-- Air dates that don't use {{Start date}}
local function checkUsageOfDateTemplates(args, v, onInitialPage, title)
if (v == 'OriginalAirDate'
and args[v] ~= ''
and string.match(args[v], '%d%d%d%d') ~= nil
and string.match(args[v], '2C2C2C') == nil
and string.find(args[v], 'dtstart') == nil
and onInitialPage
and title.namespace == 0)
then
addTrackingCategory(trackingCategoryList["air_dates"])
end
-- Alternate air dates that do use {{Start date}}
if (v == 'AltDate' and args[v] ~= '' and string.find(args[v], 'dtstart') ~= nil and onInitialPage and title.namespace == 0) then
addTrackingCategory(trackingCategoryList["alt_air_dates"])
end
end
-- Local function which is used to create a Production Code cell.
local function createProductionCodeCell(args, v)
if (hasValue(args.ProdCode) and string.find(args.ProdCode, 'TBA') == nil) then
row:tag('td')
:attr('id', 'pc' .. idTrim(idTrim(args.ProdCode, ' ----'), '<'))
:css('text-align', 'center')
:wikitext(args.ProdCode)
elseif (args.ProdCode == '' or string.find(args.ProdCode or '', 'TBA') ~= nil) then
createEmptyCell(args, v, false)
createTableData(args.ProdCode, 1, "center")
else
-- ProductionCode parameter not used; Do nothing.
end
nonNilParams = nonNilParams + 1
end
--[[
Local function which is used to extract data
from the numbered serial parameters (Title1, Aux1, etc.), and then convert them to
use the non-numbered parameter names (Title, Aux).
The function returns the args as non-numbered prameter names.
]]--
local function extractDataFromNumberedSerialArgs(args, i, numberOfParameterGroups, title)
for _, v in ipairs(cellNameList) do
local parameter = v
local numberedParameter = v .. "_" .. i
local excludeParameter = excludeList[parameter] or 'NULL' .. parameter
local excludeNumberParameter = (excludeList[numberedParameter] or 'NULL' .. parameter) .. "_" .. i
if (not hasValue(args[numberedParameter]) and not hasValue(args[excludeNumberParameter])
and hasValue(parameterGroupCells[parameter]) and not hasValue(args[excludeParameter])) then
if (v ~= 'ProdCode') then
createEmptyCell(args, parameter, true)
else
args[parameter] = ''
end
if (title.namespace == 0) then
addTrackingCategory(trackingCategoryList["nonmatching_numbered_parameters"])
end
elseif (hasValue(args[numberedParameter]) and not hasValue(args[excludeNumberParameter])) then
args[parameter] = args[numberedParameter]
end
end
return args
end
--[[
Local function which is used to create column cells.
EpisodeNumber, EpisodeNumber2 and Title are created in different functions
as they require some various if checks.
See:
-- createEpisodeNumberCell()
-- createEpisodeNumberCellSecondary()
-- createTitleCell()
]]--
local function createCells(args, isSerial, currentRow, onInitialPage, title, numberOfParameterGroups)
for k, v in ipairs(cellNameList) do
if (v == 'ProdCode') then
createProductionCodeCell(args, v)
elseif (args[v]) then
-- Set empty cells to TBA/TBD
if (args[v] == '') then
createEmptyCell(args, v, false)
elseif (v == 'WrittenBy' and title.namespace == 0) then
if ((string.find(args[v], "''Story") ~= nil or string.find(args[v], "''Teleplay") ~= nil) and string.find(args[v], "8202") == nil) then
--   is the hairspace added through {{StoryTeleplay}}
addTrackingCategory(trackingCategoryList["raw_unformatted_storyteleplay"])
end
end
-- If serial titles need to be centered and not left, then this should be removed.
local textAlign = "center"
if (v == 'Aux1' and isSerial) then
textAlign = "left"
end
-- Remove wikilinks from links in serial rowspans rows after the first.
-- if (currentRow > 1) then
-- args[v] = removeWikilinks(args, v)
-- end
local thisRowspan
if (firstParameterGroupCell and k < firstParameterGroupCell) then
thisRowspan = numberOfParameterGroups
else
thisRowspan = 1
end
if (currentRow == 1 or (currentRow > 1 and k >= (firstParameterGroupCell or 0))) then
createTableData(args[v], thisRowspan, textAlign)
end
nonNilParams = nonNilParams + 1
checkUsageOfDateTemplates(args, v, onInitialPage, title)
end
if (args[v] == "TBA") then
cellValueTBA = true
end
end
end
--[[
Local function which is used to create the Title cell text.
The title text will be handled in the following way:
Line 1: <Title><RTitle> (with no space between)
Line 2: <AltTitle><RAltTitle> (with no space between) OR
Line 2: Transcription: <TranslitTitle> (<Language>: <NativeTitle>)<RAltTitle> (with space between first two parameters)
If <Title> or <RTitle> are empty,
then the values of line 2 will be placed on line 1 instead.
--]]
local function createTitleText(args)
local titleString = ''
local isCellPresent = false
local useSecondLine = false
local lineBreakUsed = false
-- Surround the Title with quotes; No quotes if empty.
if (args.Title ~= nil) then
if (args.Title == "") then
isCellPresent = true
else
titleString = '"' .. args.Title .. '"'
useSecondLine = true
isCellPresent = true
end
end
if (args.RTitle ~= nil) then
if (args.RTitle == "") then
isCellPresent = true
else
titleString = titleString .. args.RTitle
useSecondLine = true
isCellPresent = true
end
end
-- Surround the AltTitle/TranslitTitle with quotes; No quotes if empty.
if (args.AltTitle or args.TranslitTitle) then
isCellPresent = true
if (useSecondLine) then
titleString = titleString .. "<br />"
lineBreakUsed = true
end
if (hasValue(args.AltTitle)) then
titleString = titleString .. '"' .. args.AltTitle .. '"'
elseif (hasValue(args.TranslitTitle)) then
if (hasValue(args.NativeTitleLangCode)) then
titleString = titleString .. 'Transcription: "' .. langModule._transl({args.NativeTitleLangCode, args.TranslitTitle, italic = 'no'}) .. '"'
else
titleString = titleString .. 'Transcription: "' .. args.TranslitTitle .. '"'
end
end
end
if (args.NativeTitle ~= nil) then
if (args.NativeTitle == "") then
isCellPresent = true
else
isCellPresent = true
if (useSecondLine and lineBreakUsed == false) then
titleString = titleString .. "<br />"
end
if (hasValue(args.NativeTitleLangCode)) then
local languageCode = "Lang-" .. args.NativeTitleLangCode
titleString = titleString .. " (" .. langModule._lang_xx_inherit({code = args.NativeTitleLangCode, args.NativeTitle}) .. ")"
else
titleString = titleString .. " (" .. args.NativeTitle .. ")"
end
end
end
if (args.RAltTitle ~= nil) then
if (args.RAltTitle == "") then
isCellPresent = true
else
isCellPresent = true
if (useSecondLine and lineBreakUsed == false) then
titleString = titleString .. "<br />"
end
titleString = titleString .. args.RAltTitle
end
end
return titleString, isCellPresent
end
--[[
Local function which is used to extract data
from the numbered title parameters (Title1, RTitle2, etc.), and then convert them to
use the non-numbered prameter names (Title, RTitle).
The function returns two results:
-- The args parameter table.
-- A boolean indicating if the title group has data.
]]--
local function extractDataFromNumberedTitleArgs(args, i)
local nextGroupValid = false
for _, v in ipairs(titleList) do
local parameter = v
local numberedParameter = v .. "_" .. i
args[parameter] = args[numberedParameter]
if (nextGroupValid == false and hasValue(args[numberedParameter])) then
nextGroupValid = true
end
end
return args, nextGroupValid
end
-- Local function which is used to process the multi title list.
local function processMultiTitleList(args, numberOfParameterGroups)
local nativeTitleLangCode = args.NativeTitleLangCode
local titleText = ""
local isCellPresent = false
local isFirstTitleGroup = true -- Making sure that the title cell is created at least once and isn't created again if other #N titles are empty.
for i = 1, numberOfParameterGroups do
local args, nextGroupValid = extractDataFromNumberedTitleArgs(args, i)
if (nextGroupValid) then
if (isFirstTitleGroup == false) then
titleText = titleText .. "<hr />"
end
local titleTextRow
titleTextRow = createTitleText(args)
titleText = titleText .. titleTextRow
isFirstTitleGroup = false
else
if (isFirstTitleGroup) then
titleText, isCellPresent = createTitleText(args)
end
-- Valid titles have to be in succession (#1, #2, #3 and not #1, #4 #5), so exit for loop if next group is empty.
return titleText, isCellPresent
end
end
return titleText
end
-- Local function which is used to create a Title cell.
local function createTitleCell(args, numberOfParameterGroups, multiTitleListEnabled, isSerial)
local titleText
local isCellPresent
if (multiTitleListEnabled) then
titleText, isCellPresent = processMultiTitleList(args, numberOfParameterGroups)
else
titleText, isCellPresent = createTitleText(args)
end
if (isCellPresent == false) then
return nil
end
local textAlign = "left"
-- If Title is blank, then set Raw Title to TBA
if (hasValue(titleText) == false) then
titleText = tableEmptyCellModule._main({})
textAlign = "left"
end
-- If title is the first cell, create it with a !scope="row"
if (nonNilParams == 0) then
if (isSerial) then
row:tag('th')
:addClass('summary')
:attr('scope', 'row')
:attr('rowspan', numberOfParameterGroups)
:css('text-align', textAlign)
:wikitext(titleText)
else
row:tag('th')
:addClass('summary')
:attr('scope', 'row')
:css('text-align', textAlign)
:wikitext(titleText)
end
else
if (isSerial) then
row:tag('td')
:addClass('summary')
:attr('rowspan', numberOfParameterGroups)
:css('text-align', textAlign)
:wikitext(titleText)
else
row:tag('td')
:addClass('summary')
:css('text-align', textAlign)
:wikitext(titleText)
end
end
nonNilParams = nonNilParams + 1
end
-- Local function which is used to create a table row header for either the
-- EpisodeNumber or EpisodeNumber2 column cells.
local function createTableRowEpisodeNumberHeader(episodeNumber, numberOfParameterGroups, episodeText)
local epID = string.match(episodeNumber, "^%w+")
row:tag('th')
:attr('scope', 'row')
:attr('rowspan', numberOfParameterGroups)
:attr('id', epID and 'ep' .. epID or '')
:css('text-align', 'center')
:wikitext(episodeText)
end
--[[
Local function which is used to extract the text from the EpisodeNumber or EpisodeNumber2
parameters and format them into a correct MoS compliant version.
Styles supported:
-- A number range of two numbers, indicating the start and end of the range,
seperated by an en-dash (–) with no spaces in between.
Example: "1 - 2" -> "1–2"; "1-2-3" -> "1–3".
-- An alphanumeric or letter range, similar to the above.
Example: "A - B" -> "A–B"; "A-B-C" -> "A–C".
Example: "A1 - B1" -> "A1–B1"; "A1-B1-C1" -> "A1–C1".
-- A number range of two numbers, indicating the start and end of the range,
seperated by a visual <hr /> (divider line).
-- An alphanumeric or letter range, similar to the above.
]]--
local function getEpisodeText(episodeNumber)
if (episodeNumber == '') then
return tableEmptyCellModule._main({})
else
local episodeNumber1
local episodeNumber2
-- Used for double episodes that need a visual "–"" or "<hr />"" added.
local divider
episodeNumber = episodeNumber:gsub('%s*<br%s*/?%s*>%s*', '<hr />')
if (episodeNumber:match('^(%w+)%s*<hr */%s*>%s*(%w+)$')) then
episodeNumber1, episodeNumber2 = episodeNumber:match('^(%w+)%s*<hr */%s*>%s*(%w+)$')
divider = "<hr />"
elseif (episodeNumber:match('^(%w+)%s*<hr */%s*>.-<hr */%s*>%s*(%w+)$')) then -- 3 or more elements
episodeNumber1, episodeNumber2 = episodeNumber:match('^(%w+)%s*<hr */%s*>.-<hr */%s*>%s*(%w+)$')
divider = "<hr />"
elseif (mw.ustring.match(episodeNumber, '^(%w+)%s*[%s%-–/&]%s*(%w+)$')) then
episodeNumber1, episodeNumber2 = mw.ustring.match(episodeNumber, '^(%w+)%s*[%s%-–/&]%s*(%w+)$')
divider = "–"
else
episodeNumber1, episodeNumber2 = mw.ustring.match(episodeNumber, '^(%w+)%s*[%s%-–/&].-[%s%-–/&]%s*(%w+)$') -- 3 or more elements
divider = "–"
end
if (not episodeNumber1) then
return episodeNumber
elseif (not episodeNumber2) then
return string.match(episodeNumber, '%w+')
else
return episodeNumber1 .. divider .. episodeNumber2
end
end
end
-- Local function which is used to create EpisodeNumber2 and EpisodeNumber3 cells.
local function _createEpisodeNumberCellSecondary(episodeValue, numberOfParameterGroups)
if (episodeValue) then
local episodeText = getEpisodeText(episodeValue)
if (nonNilParams == 0) then
createTableRowEpisodeNumberHeader(episodeValue, numberOfParameterGroups, episodeText)
else
createTableData(episodeText, numberOfParameterGroups, "center")
end
nonNilParams = nonNilParams + 1
end
end
-- Local function which is used to create seconday episode number cells.
local function createEpisodeNumberCellSecondary(args, numberOfParameterGroups)
_createEpisodeNumberCellSecondary(args.EpisodeNumber2, numberOfParameterGroups)
_createEpisodeNumberCellSecondary(args.EpisodeNumber3, numberOfParameterGroups)
end
-- Local function which is used to create an EpisodeNumber cell.
local function createEpisodeNumberCell(args, numberOfParameterGroups)
if (args.EpisodeNumber) then
local episodeText = getEpisodeText(args.EpisodeNumber)
createTableRowEpisodeNumberHeader(args.EpisodeNumber, numberOfParameterGroups, episodeText)
nonNilParams = nonNilParams + 1
end
end
-- Local function which is used to create a single row of cells.
-- This is the standard function called.
local function createSingleRowCells(args, numberOfParameterGroups, multiTitleListEnabled, onInitialPage, title)
createEpisodeNumberCell(args, 1)
createEpisodeNumberCellSecondary(args, 1)
createTitleCell(args, numberOfParameterGroups, multiTitleListEnabled, false)
createCells(args, false, 1, onInitialPage, title, numberOfParameterGroups)
end
-- Local function which is used to create a multiple row of cells.
-- This function is called when part of the row is rowspaned.
-- Current use is for Doctor Who serials.
local function createMultiRowCells(args, numberOfParameterGroups, onInitialPage, title, topColor)
createEpisodeNumberCell(args, numberOfParameterGroups)
createEpisodeNumberCellSecondary(args, numberOfParameterGroups)
createTitleCell(args, numberOfParameterGroups, false, true)
for i = 1, numberOfParameterGroups do
args = extractDataFromNumberedSerialArgs(args, i, numberOfParameterGroups, title)
createCells(args, true, i, onInitialPage, title, numberOfParameterGroups)
if (i ~= numberOfParameterGroups) then
row = row:done() -- Use done() to close the 'tr' tag in rowspaned rows.
:tag('tr')
:css('background', topColor)
end
end
end
-- Local function which is used to retrieve the NumParts value.
local function getnumberOfParameterGroups(args)
for k, v in ipairs(cellNameList) do
local numberedParameter = v .. "_" .. 1
if (args[numberedParameter]) then
parameterGroupCells[v] = true
if not firstParameterGroupCell then
firstParameterGroupCell = k
end
end
end
if (hasValue(args.NumParts)) then
return args.NumParts, true
else
return 1, false
end
end
-- Local function which is used to retrieve the Top Color value.
local function getTopColor(args, rowColorEnabled, onInitialPage)
local episodeNumber = mathModule._cleanNumber(args.EpisodeNumber) or 1
if (args.TopColor) then
if (string.find(args.TopColor, "#")) then
return args.TopColor
else
return '#' .. args.TopColor
end
elseif (rowColorEnabled and onInitialPage and mathModule._mod(episodeNumber, 2) == 0) then
return '#E9E9E9'
elseif (onInitialPage and args.ShortSummary) then
return '#F2F2F2'
else
return 'inherit'
end
end
-- Local function which is used to retrieve the Row Color value.
local function isRowColorEnabled(args)
local rowColorEnabled = yesNoModule(args.RowColor, false)
if (args.RowColor and string.lower(args.RowColor) == 'on') then
rowColorEnabled = true
end
return rowColorEnabled
end
-- Local function which is used to retrieve the Line Color value.
local function getLineColor(args)
-- Default color to light blue
local lineColor = args.LineColor or 'CCCCFF'
-- Add # to color if necessary, and set to default color if invalid
if (htmlColor[lineColor] == nil) then
lineColor = '#' .. (mw.ustring.match(lineColor, '^[%s#]*([a-fA-F0-9]*)[%s]*$') or '')
if (lineColor == '#') then
lineColor = '#CCCCFF'
end
end
return lineColor
end
-- Local function which is used to check if the table is located on the page
-- currently viewed, or on a transcluded page instead.
-- If it is on a transcluded page, the episode summary should not be shown.
local function isOnInitialPage(args, sublist, pageTitle, initiallistTitle)
-- This should be the only check needed, however, it was previously implemented with two templates
-- with one of them not requiring an article name, so for backward compatability, the whole sequence is kept.
local onInitialPage
-- Only sublist had anything about hiding, so only it needs to even check
if (sublist) then
onInitialPage = mw.uri.anchorEncode(pageTitle) == mw.uri.anchorEncode(initiallistTitle)
-- avoid processing ghost references
if (not onInitialPage) then
args.ShortSummary = nil
end
else
if (initiallistTitle == "") then
onInitialPage = true
else
onInitialPage = mw.uri.anchorEncode(pageTitle) == mw.uri.anchorEncode(initiallistTitle)
end
end
return onInitialPage
end
-- Local function which does the actual main process.
local function _main(args, sublist)
local title = mw.title.getCurrentTitle()
local pageTitle = title.text
local initiallistTitle = args['1'] or ''
-- Is this list on the same page as the page directly calling the template?
local onInitialPage = isOnInitialPage(args, sublist, pageTitle, initiallistTitle)
-- Need just this parameter removed if blank, no others
if (hasValue(args.ShortSummary) == false) then
args.ShortSummary = nil
end
local lineColor = getLineColor(args)
local rowColorEnabled = isRowColorEnabled(args)
local topColor = getTopColor(args, rowColorEnabled, onInitialPage)
local root = mw.html.create() -- Create the root mw.html object to return
row = root:tag('tr') -- Create the table row and store it globally
:addClass('vevent')
:css('text-align', 'center')
:css('background', topColor)
local numberOfParameterGroups, multiTitleListEnabled = getnumberOfParameterGroups(args)
if (multiTitleListEnabled and not args.Title_2) then
createMultiRowCells(args, numberOfParameterGroups, onInitialPage, title, topColor)
else
createSingleRowCells(args, numberOfParameterGroups, multiTitleListEnabled, onInitialPage, title)
end
-- add these categories only in the mainspace and only if they are on the page where the template is used
if (onInitialPage and title.namespace == 0) then
addLineColorTrackingCategories(args)
addTopColorTrackingCategories(args)
end
if (cellValueTBA == true and title.namespace == 0) then
addTrackingCategory(trackingCategoryList["tba_values"])
end
-- Do not show the summary if this is being transcluded on the initial list page
-- Do include it on all other lists
if (onInitialPage and args.ShortSummary) then
local bottomWrapper = createShortSummaryRow(args, lineColor)
return tostring(root) .. tostring(bottomWrapper) .. trackingCategories
else
return tostring(root) .. trackingCategories
end
end
-- Local function which handles both module entry points.
local function main(frame, sublist)
local getArgs = require('Module:Arguments').getArgs
local args
-- Most parameters should still display when blank, so don't remove blanks
if (sublist) then
args = getArgs(frame, {removeBlanks = false, wrappers = 'Template:Episode list/sublist'})
else
args = getArgs(frame, {removeBlanks = false, wrappers = 'Template:Episode list'})
end
-- args['1'] = mw.getCurrentFrame():getParent():getTitle()
return _main(args, sublist, frame)
end
--[[
Public function which is used to create an Episode row
for an Episode Table used for lists of episodes where each table is on a different page,
usually placed on individual season articles.
For tables which are all on the same page see p.list().
Parameters:
-- |1= — required; The title of the article where the Episode Table is located at.
-- |EpisodeNumber= — suggested; The overall episode number in the series.
-- |EpisodeNumber2= — suggested; The episode number in the season.
-- |Title= — suggested; The English title of the episode.
-- |RTitle= — optional; Unformatted parameter that can be used to add a reference after "Title",
or can be used as a "raw title" to replace "Title" completely.
-- |AltTitle= — optional; An alternative title, such as the title of a foreign show's episode in its native language,
or a title that was originally changed.
-- |TranslitTitle= — optional; The title of the episode transliteration (Romanization) to Latin characters.
-- |RAltTitle= — optional; Unformatted parameter that can be used to add a reference after "AltTitle",
or can be used as a "raw title" to replace "AltTitle" completely.
-- |NativeTitle= — optional; The title of the episode in the native language.
-- |NativeTitleLangCode — optional; The language code of the native title language.
-- |Aux1= — optional; General purpose parameter. The meaning is specified by the column header.
This parameter is also used for Serial episode titles, such as those used in Doctor Who.
-- |DirectedBy= — optional; Name of the episode's director. May contain links.
-- |WrittenBy= — optional; Primary writer(s) of the episode. May include links.
-- |Aux2= — optional; General purpose parameter. The meaning is specified by the column header.
-- |Aux3= — optional; General purpose parameter. The meaning is specified by the column header.
-- |OriginalAirDate= — optional; This is the date the episode first aired on TV, or is scheduled to air.
-- |AltDate= — optional; The next notable air date, such as the first air date of an anime in English.
-- |Guests= — optional; List of Guests for talk shows. Cannot be used simultaneously with Aux1.
-- |MusicalGuests= — optional; List of MusicalGuests for talk shows. Cannot be used simultaneously with Aux2.
-- |ProdCode= — optional; The production code in the series. When defined, this parameter also creates a link anchor,
prefixed by "pc"; for example, List of episodes#pc01.
-- |Viewers= — optional; Number of viewers who watched the episode. Should include a reference.
-- |Aux4= — optional; General purpose parameter. The meaning is specified by the column header.
-- |ShortSummary= — optional; A short 100–200 word plot summary of the episode.
-- |LineColor= — optional; Colors the separator line between episode entries. If not defined the color defaults to "#CCCCFF"
and the article is placed in Category:Episode list using the default LineColor.
Use of "#", or anything but a valid hex code will result in an invalid syntax.
-- |TopColor= — discouraged; Colors the main row of information (that is, not the ShortSummary row).
Articles using this parameter are placed in Category:Episode lists with row deviations.
-- |RowColor= — optional; Switch parameter that must only be defined when the EpisodeNumber= entry is not a regular number
(e.g. "12–13" for two episodes described in one table entry).
If the first episode number is even, define pass "on". If the first episode number is odd, pass "off".
--]]
function p.sublist(frame)
return main(frame, true)
end
--[[
Public function which is used to create an Episode row
for an Episode Table used for lists of episodes where all tables are on the same page.
For tables which are on different pages see p.sublist().
For complete parameter documentation, see the documentation at p.sublist().
--]]
function p.list(frame)
return main(frame, false)
end
return p
a2f78a2a194bed9638416e32b6b77f3f24b8632c
Template:Episode list
10
30
67
2024-01-03T20:50:59Z
Laggardson
2
Created page with "<includeonly>{{#invoke:Episode list|list}}</includeonly><noinclude> {{documentation}} </noinclude>"
wikitext
text/x-wiki
<includeonly>{{#invoke:Episode list|list}}</includeonly><noinclude>
{{documentation}}
</noinclude>
8351cf1badb05b51b382dd5712606be5e1f05e2f
Template:Episode table
10
31
68
2024-01-03T20:55:46Z
Laggardson
2
Created page with "<includeonly>{{#invoke:Episode table|main}}</includeonly><noinclude> {{documentation}} </noinclude>"
wikitext
text/x-wiki
<includeonly>{{#invoke:Episode table|main}}</includeonly><noinclude>
{{documentation}}
</noinclude>
63334d27875aaeb913c7a37c3ccb16b00e408c44
Module:Color contrast
828
32
69
2024-01-03T20:58:02Z
Laggardson
2
Created page with "-- -- This module implements -- {{Color contrast ratio}} -- {{Greater color contrast ratio}} -- {{ColorToLum}} -- {{RGBColorToLum}} -- local p = {} local HTMLcolor = mw.loadData( 'Module:Color contrast/colors' ) local function sRGB (v) if (v <= 0.03928) then v = v / 12.92 else v = math.pow((v+0.055)/1.055, 2.4) end return v end local function rgbdec2lum(R, G, B) if ( 0 <= R and R < 256 and 0 <= G and G < 256 and 0 <= B and B < 256 ) then return 0.2126 *..."
Scribunto
text/plain
--
-- This module implements
-- {{Color contrast ratio}}
-- {{Greater color contrast ratio}}
-- {{ColorToLum}}
-- {{RGBColorToLum}}
--
local p = {}
local HTMLcolor = mw.loadData( 'Module:Color contrast/colors' )
local function sRGB (v)
if (v <= 0.03928) then
v = v / 12.92
else
v = math.pow((v+0.055)/1.055, 2.4)
end
return v
end
local function rgbdec2lum(R, G, B)
if ( 0 <= R and R < 256 and 0 <= G and G < 256 and 0 <= B and B < 256 ) then
return 0.2126 * sRGB(R/255) + 0.7152 * sRGB(G/255) + 0.0722 * sRGB(B/255)
else
return ''
end
end
local function hsl2lum(h, s, l)
if ( 0 <= h and h < 360 and 0 <= s and s <= 1 and 0 <= l and l <= 1 ) then
local c = (1 - math.abs(2*l - 1))*s
local x = c*(1 - math.abs( math.fmod(h/60, 2) - 1) )
local m = l - c/2
local r, g, b = m, m, m
if( 0 <= h and h < 60 ) then
r = r + c
g = g + x
elseif( 60 <= h and h < 120 ) then
r = r + x
g = g + c
elseif( 120 <= h and h < 180 ) then
g = g + c
b = b + x
elseif( 180 <= h and h < 240 ) then
g = g + x
b = b + c
elseif( 240 <= h and h < 300 ) then
r = r + x
b = b + c
elseif( 300 <= h and h < 360 ) then
r = r + c
b = b + x
end
return rgbdec2lum(255*r, 255*g, 255*b)
else
return ''
end
end
local function color2lum(c)
if (c == nil) then
return ''
end
-- html '#' entity
c = c:gsub("#", "#")
-- whitespace
c = c:match( '^%s*(.-)[%s;]*$' )
-- unstrip nowiki strip markers
c = mw.text.unstripNoWiki(c)
-- lowercase
c = c:lower()
-- first try to look it up
local L = HTMLcolor[c]
if (L ~= nil) then
return L
end
-- convert from hsl
if mw.ustring.match(c,'^hsl%([%s]*[0-9][0-9%.]*[%s]*,[%s]*[0-9][0-9%.]*%%[%s]*,[%s]*[0-9][0-9%.]*%%[%s]*%)$') then
local h, s, l = mw.ustring.match(c,'^hsl%([%s]*([0-9][0-9%.]*)[%s]*,[%s]*([0-9][0-9%.]*)%%[%s]*,[%s]*([0-9][0-9%.]*)%%[%s]*%)$')
return hsl2lum(tonumber(h), tonumber(s)/100, tonumber(l)/100)
end
-- convert from rgb
if mw.ustring.match(c,'^rgb%([%s]*[0-9][0-9]*[%s]*,[%s]*[0-9][0-9]*[%s]*,[%s]*[0-9][0-9]*[%s]*%)$') then
local R, G, B = mw.ustring.match(c,'^rgb%([%s]*([0-9][0-9]*)[%s]*,[%s]*([0-9][0-9]*)[%s]*,[%s]*([0-9][0-9]*)[%s]*%)$')
return rgbdec2lum(tonumber(R), tonumber(G), tonumber(B))
end
-- convert from rgb percent
if mw.ustring.match(c,'^rgb%([%s]*[0-9][0-9%.]*%%[%s]*,[%s]*[0-9][0-9%.]*%%[%s]*,[%s]*[0-9][0-9%.]*%%[%s]*%)$') then
local R, G, B = mw.ustring.match(c,'^rgb%([%s]*([0-9][0-9%.]*)%%[%s]*,[%s]*([0-9][0-9%.]*)%%[%s]*,[%s]*([0-9][0-9%.]*)%%[%s]*%)$')
return rgbdec2lum(255*tonumber(R)/100, 255*tonumber(G)/100, 255*tonumber(B)/100)
end
-- remove leading # (if there is one) and whitespace
c = mw.ustring.match(c, '^[%s#]*([a-f0-9]*)[%s]*$')
-- split into rgb
local cs = mw.text.split(c or '', '')
if( #cs == 6 ) then
local R = 16*tonumber('0x' .. cs[1]) + tonumber('0x' .. cs[2])
local G = 16*tonumber('0x' .. cs[3]) + tonumber('0x' .. cs[4])
local B = 16*tonumber('0x' .. cs[5]) + tonumber('0x' .. cs[6])
return rgbdec2lum(R, G, B)
elseif ( #cs == 3 ) then
local R = 16*tonumber('0x' .. cs[1]) + tonumber('0x' .. cs[1])
local G = 16*tonumber('0x' .. cs[2]) + tonumber('0x' .. cs[2])
local B = 16*tonumber('0x' .. cs[3]) + tonumber('0x' .. cs[3])
return rgbdec2lum(R, G, B)
end
-- failure, return blank
return ''
end
-- This exports the function for use in other modules.
-- The colour is passed as a string.
function p._lum(color)
return color2lum(color)
end
function p._greatercontrast(args)
local bias = tonumber(args['bias'] or '0') or 0
local css = (args['css'] and args['css'] ~= '') and true or false
local v1 = color2lum(args[1] or '')
local c2 = args[2] or '#FFFFFF'
local v2 = color2lum(c2)
local c3 = args[3] or '#000000'
local v3 = color2lum(c3)
local ratio1 = -1;
local ratio2 = -1;
if (type(v1) == 'number' and type(v2) == 'number') then
ratio1 = (v2 + 0.05)/(v1 + 0.05)
ratio1 = (ratio1 < 1) and 1/ratio1 or ratio1
end
if (type(v1) == 'number' and type(v3) == 'number') then
ratio2 = (v3 + 0.05)/(v1 + 0.05)
ratio2 = (ratio2 < 1) and 1/ratio2 or ratio2
end
if css then
local c1 = args[1] or ''
if mw.ustring.match(c1, '^[A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9]$') or
mw.ustring.match(c1, '^[A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9]$') then
c1 = '#' .. c1
end
if mw.ustring.match(c2, '^[A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9]$') or
mw.ustring.match(c2, '^[A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9]$') then
c2 = '#' .. c2
end
if mw.ustring.match(v3, '^[A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9]$') or
mw.ustring.match(v3, '^[A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9]$') then
c3 = '#' .. c3
end
return 'background-color:' .. c1 .. '; color:' .. ((ratio1 > 0) and (ratio2 > 0) and ((ratio1 + bias > ratio2) and c2 or c3) or '') .. ';'
end
return (ratio1 > 0) and (ratio2 > 0) and ((ratio1 + bias > ratio2) and c2 or c3) or ''
end
function p._ratio(args)
local v1 = color2lum(args[1])
local v2 = color2lum(args[2])
if (type(v1) == 'number' and type(v2) == 'number') then
-- v1 should be the brighter of the two.
if v2 > v1 then
v1, v2 = v2, v1
end
return (v1 + 0.05)/(v2 + 0.05)
else
return args['error'] or '?'
end
end
function p._styleratio(args)
local style = (args[1] or ''):lower()
local bg, fg = 'white', 'black'
local lum_bg, lum_fg = 1, 0
if args[2] then
local lum = color2lum(args[2])
if lum ~= '' then bg, lum_bg = args[2], lum end
end
if args[3] then
local lum = color2lum(args[3])
if lum ~= '' then fg, lum_fg = args[3], lum end
end
local slist = mw.text.split(mw.ustring.gsub(mw.ustring.gsub(style or '', '&#[Xx]23;', '#'), '#', '#'), ';')
for k = 1,#slist do
local s = slist[k]
local k,v = s:match( '^[%s]*([^:]-):([^:]-)[%s;]*$' )
k = k or ''
v = v or ''
if (k:match('^[%s]*(background)[%s]*$') or k:match('^[%s]*(background%-color)[%s]*$')) then
local lum = color2lum(v)
if( lum ~= '' ) then bg, lum_bg = v, lum end
elseif (k:match('^[%s]*(color)[%s]*$')) then
local lum = color2lum(v)
if( lum ~= '' ) then bg, lum_fg = v, lum end
end
end
if lum_bg > lum_fg then
return (lum_bg + 0.05)/(lum_fg + 0.05)
else
return (lum_fg + 0.05)/(lum_bg + 0.05)
end
end
--[[
Use {{#invoke:Color contrast|somecolor}} directly or
{{#invoke:Color contrast}} from a wrapper template.
Parameters:
-- |1= — required; A color to check.
--]]
function p.lum(frame)
local color = frame.args[1] or frame:getParent().args[1]
return p._lum(color)
end
function p.ratio(frame)
local args = frame.args[1] and frame.args or frame:getParent().args
return p._ratio(args)
end
function p.styleratio(frame)
local args = frame.args[1] and frame.args or frame:getParent().args
return p._styleratio(args)
end
function p.greatercontrast(frame)
local args = frame.args[1] and frame.args or frame:getParent().args
return p._greatercontrast(args)
end
return p
1e399769117591366a63f62996c9a407077cc711
Module:Color contrast/colors
828
33
70
2024-01-03T20:59:00Z
Laggardson
2
Created page with "return { aliceblue = 0.92880068253475, antiquewhite = 0.84646951707754, aqua = 0.7874, aquamarine = 0.8078549208338, azure = 0.97265264954166, beige = 0.8988459998705, bisque = 0.80732327372979, black = 0, blanchedalmond = 0.85084439608156, blue = 0.0722, blueviolet = 0.12622014321946, brown = 0.098224287876511..."
Scribunto
text/plain
return {
aliceblue = 0.92880068253475,
antiquewhite = 0.84646951707754,
aqua = 0.7874,
aquamarine = 0.8078549208338,
azure = 0.97265264954166,
beige = 0.8988459998705,
bisque = 0.80732327372979,
black = 0,
blanchedalmond = 0.85084439608156,
blue = 0.0722,
blueviolet = 0.12622014321946,
brown = 0.098224287876511,
burlywood = 0.51559844533893,
cadetblue = 0.29424681085422,
chartreuse = 0.76032025902623,
chocolate = 0.23898526114557,
coral = 0.37017930872924,
cornflowerblue = 0.30318641994179,
cornsilk = 0.93562110372965,
crimson = 0.16042199953026,
cyan = 0.7874,
darkblue = 0.018640801980939,
darkcyan = 0.20329317839046,
darkgoldenrod = 0.27264703559993,
darkgray = 0.39675523072563,
darkgreen = 0.091143429047575,
darkgrey = 0.39675523072563,
darkkhaki = 0.45747326349994,
darkmagenta = 0.07353047651207,
darkolivegreen = 0.12651920884889,
darkorange = 0.40016167026524,
darkorchid = 0.13413142174857,
darkred = 0.054889674531132,
darksalmon = 0.40541471563381,
darkseagreen = 0.43789249325969,
darkslateblue = 0.065792846227988,
darkslategray = 0.067608151928044,
darkslategrey = 0.067608151928044,
darkturquoise = 0.4874606277449,
darkviolet = 0.10999048339343,
deeppink = 0.23866895828276,
deepskyblue = 0.44481603395575,
dimgray = 0.14126329114027,
dimgrey = 0.14126329114027,
dodgerblue = 0.27442536991456,
firebrick = 0.10724525535015,
floralwhite = 0.95922484825004,
forestgreen = 0.18920812076002,
fuchsia = 0.2848,
gainsboro = 0.71569350050648,
ghostwhite = 0.94311261886323,
gold = 0.69860877428159,
goldenrod = 0.41919977809569,
gray = 0.2158605001139,
green = 0.15438342968146,
greenyellow = 0.80609472611453,
grey = 0.2158605001139,
honeydew = 0.96336535554782,
hotpink = 0.34658438169715,
indianred = 0.21406134963884,
indigo = 0.03107561486337,
ivory = 0.99071270600615,
khaki = 0.77012343394121,
lavender = 0.80318750514521,
lavenderblush = 0.90172748631046,
lawngreen = 0.73905893124963,
lemonchiffon = 0.94038992245622,
lightblue = 0.63709141280807,
lightcoral = 0.35522120733135,
lightcyan = 0.94587293494829,
lightgoldenrodyellow = 0.93348351018297,
lightgray = 0.65140563741982,
lightgreen = 0.69091979956865,
lightgrey = 0.65140563741982,
lightpink = 0.58566152734898,
lightsalmon = 0.4780675225206,
lightseagreen = 0.35050145117042,
lightskyblue = 0.56195637618331,
lightslategray = 0.23830165007287,
lightslategrey = 0.23830165007287,
lightsteelblue = 0.53983888284666,
lightyellow = 0.98161818392882,
lime = 0.7152,
limegreen = 0.44571042246098,
linen = 0.88357340984379,
magenta = 0.2848,
maroon = 0.045891942324215,
mediumaquamarine = 0.49389703310801,
mediumblue = 0.044077780212328,
mediumorchid = 0.21639251153773,
mediumpurple = 0.22905858091648,
mediumseagreen = 0.34393112338131,
mediumslateblue = 0.20284629471622,
mediumspringgreen = 0.70704308194184,
mediumturquoise = 0.5133827926448,
mediumvioletred = 0.14371899849357,
midnightblue = 0.02071786635086,
mintcream = 0.97834604947588,
mistyrose = 0.82183047859185,
moccasin = 0.80083000991567,
navajowhite = 0.76519682342785,
navy = 0.015585128108224,
oldlace = 0.91900633405549,
olive = 0.20027537200568,
olivedrab = 0.22593150951929,
orange = 0.4817026703631,
orangered = 0.25516243753416,
orchid = 0.31348806761439,
palegoldenrod = 0.78792647887614,
palegreen = 0.77936759006353,
paleturquoise = 0.76436077921714,
palevioletred = 0.28754994117889,
papayawhip = 0.87797100199835,
peachpuff = 0.74905589878251,
peru = 0.30113074877936,
pink = 0.63271070702466,
plum = 0.45734221587969,
powderblue = 0.68254586500605,
purple = 0.061477070432439,
rebeccapurple = 0.07492341159447,
red = 0.2126,
rosybrown = 0.32319457649407,
royalblue = 0.16663210743188,
saddlebrown = 0.097922285020521,
salmon = 0.36977241527596,
sandybrown = 0.46628543696283,
seagreen = 0.19734199706275,
seashell = 0.92737862206922,
sienna = 0.13697631337098,
silver = 0.52711512570581,
skyblue = 0.55291668518184,
slateblue = 0.14784278062136,
slategray = 0.20896704076536,
slategrey = 0.20896704076536,
snow = 0.96533341834849,
springgreen = 0.73052306068529,
steelblue = 0.20562642207625,
tan = 0.48237604163921,
teal = 0.16996855778968,
thistle = 0.56818401093733,
tomato = 0.30638612719415,
turquoise = 0.5895536427578,
violet = 0.40315452986676,
wheat = 0.74909702820482,
white = 1,
whitesmoke = 0.91309865179342,
yellow = 0.9278,
yellowgreen = 0.50762957208707,
}
6ae47fdb24de4eed5ec26d203faf5341a388987b
Module:Arguments
828
34
71
2024-01-03T21:01:49Z
Laggardson
2
Created page with "-- This module provides easy processing of arguments passed to Scribunto from -- #invoke. It is intended for use by other Lua modules, and should not be -- called from #invoke directly. local libraryUtil = require('libraryUtil') local checkType = libraryUtil.checkType local arguments = {} -- Generate four different tidyVal functions, so that we don't have to check the -- options every time we call it. local function tidyValDefault(key, val) if type(val) == 'string'..."
Scribunto
text/plain
-- This module provides easy processing of arguments passed to Scribunto from
-- #invoke. It is intended for use by other Lua modules, and should not be
-- called from #invoke directly.
local libraryUtil = require('libraryUtil')
local checkType = libraryUtil.checkType
local arguments = {}
-- Generate four different tidyVal functions, so that we don't have to check the
-- options every time we call it.
local function tidyValDefault(key, val)
if type(val) == 'string' then
val = val:match('^%s*(.-)%s*$')
if val == '' then
return nil
else
return val
end
else
return val
end
end
local function tidyValTrimOnly(key, val)
if type(val) == 'string' then
return val:match('^%s*(.-)%s*$')
else
return val
end
end
local function tidyValRemoveBlanksOnly(key, val)
if type(val) == 'string' then
if val:find('%S') then
return val
else
return nil
end
else
return val
end
end
local function tidyValNoChange(key, val)
return val
end
local function matchesTitle(given, title)
local tp = type( given )
return (tp == 'string' or tp == 'number') and mw.title.new( given ).prefixedText == title
end
local translate_mt = { __index = function(t, k) return k end }
function arguments.getArgs(frame, options)
checkType('getArgs', 1, frame, 'table', true)
checkType('getArgs', 2, options, 'table', true)
frame = frame or {}
options = options or {}
--[[
-- Set up argument translation.
--]]
options.translate = options.translate or {}
if getmetatable(options.translate) == nil then
setmetatable(options.translate, translate_mt)
end
if options.backtranslate == nil then
options.backtranslate = {}
for k,v in pairs(options.translate) do
options.backtranslate[v] = k
end
end
if options.backtranslate and getmetatable(options.backtranslate) == nil then
setmetatable(options.backtranslate, {
__index = function(t, k)
if options.translate[k] ~= k then
return nil
else
return k
end
end
})
end
--[[
-- Get the argument tables. If we were passed a valid frame object, get the
-- frame arguments (fargs) and the parent frame arguments (pargs), depending
-- on the options set and on the parent frame's availability. If we weren't
-- passed a valid frame object, we are being called from another Lua module
-- or from the debug console, so assume that we were passed a table of args
-- directly, and assign it to a new variable (luaArgs).
--]]
local fargs, pargs, luaArgs
if type(frame.args) == 'table' and type(frame.getParent) == 'function' then
if options.wrappers then
--[[
-- The wrappers option makes Module:Arguments look up arguments in
-- either the frame argument table or the parent argument table, but
-- not both. This means that users can use either the #invoke syntax
-- or a wrapper template without the loss of performance associated
-- with looking arguments up in both the frame and the parent frame.
-- Module:Arguments will look up arguments in the parent frame
-- if it finds the parent frame's title in options.wrapper;
-- otherwise it will look up arguments in the frame object passed
-- to getArgs.
--]]
local parent = frame:getParent()
if not parent then
fargs = frame.args
else
local title = parent:getTitle():gsub('/sandbox$', '')
local found = false
if matchesTitle(options.wrappers, title) then
found = true
elseif type(options.wrappers) == 'table' then
for _,v in pairs(options.wrappers) do
if matchesTitle(v, title) then
found = true
break
end
end
end
-- We test for false specifically here so that nil (the default) acts like true.
if found or options.frameOnly == false then
pargs = parent.args
end
if not found or options.parentOnly == false then
fargs = frame.args
end
end
else
-- options.wrapper isn't set, so check the other options.
if not options.parentOnly then
fargs = frame.args
end
if not options.frameOnly then
local parent = frame:getParent()
pargs = parent and parent.args or nil
end
end
if options.parentFirst then
fargs, pargs = pargs, fargs
end
else
luaArgs = frame
end
-- Set the order of precedence of the argument tables. If the variables are
-- nil, nothing will be added to the table, which is how we avoid clashes
-- between the frame/parent args and the Lua args.
local argTables = {fargs}
argTables[#argTables + 1] = pargs
argTables[#argTables + 1] = luaArgs
--[[
-- Generate the tidyVal function. If it has been specified by the user, we
-- use that; if not, we choose one of four functions depending on the
-- options chosen. This is so that we don't have to call the options table
-- every time the function is called.
--]]
local tidyVal = options.valueFunc
if tidyVal then
if type(tidyVal) ~= 'function' then
error(
"bad value assigned to option 'valueFunc'"
.. '(function expected, got '
.. type(tidyVal)
.. ')',
2
)
end
elseif options.trim ~= false then
if options.removeBlanks ~= false then
tidyVal = tidyValDefault
else
tidyVal = tidyValTrimOnly
end
else
if options.removeBlanks ~= false then
tidyVal = tidyValRemoveBlanksOnly
else
tidyVal = tidyValNoChange
end
end
--[[
-- Set up the args, metaArgs and nilArgs tables. args will be the one
-- accessed from functions, and metaArgs will hold the actual arguments. Nil
-- arguments are memoized in nilArgs, and the metatable connects all of them
-- together.
--]]
local args, metaArgs, nilArgs, metatable = {}, {}, {}, {}
setmetatable(args, metatable)
local function mergeArgs(tables)
--[[
-- Accepts multiple tables as input and merges their keys and values
-- into one table. If a value is already present it is not overwritten;
-- tables listed earlier have precedence. We are also memoizing nil
-- values, which can be overwritten if they are 's' (soft).
--]]
for _, t in ipairs(tables) do
for key, val in pairs(t) do
if metaArgs[key] == nil and nilArgs[key] ~= 'h' then
local tidiedVal = tidyVal(key, val)
if tidiedVal == nil then
nilArgs[key] = 's'
else
metaArgs[key] = tidiedVal
end
end
end
end
end
--[[
-- Define metatable behaviour. Arguments are memoized in the metaArgs table,
-- and are only fetched from the argument tables once. Fetching arguments
-- from the argument tables is the most resource-intensive step in this
-- module, so we try and avoid it where possible. For this reason, nil
-- arguments are also memoized, in the nilArgs table. Also, we keep a record
-- in the metatable of when pairs and ipairs have been called, so we do not
-- run pairs and ipairs on the argument tables more than once. We also do
-- not run ipairs on fargs and pargs if pairs has already been run, as all
-- the arguments will already have been copied over.
--]]
metatable.__index = function (t, key)
--[[
-- Fetches an argument when the args table is indexed. First we check
-- to see if the value is memoized, and if not we try and fetch it from
-- the argument tables. When we check memoization, we need to check
-- metaArgs before nilArgs, as both can be non-nil at the same time.
-- If the argument is not present in metaArgs, we also check whether
-- pairs has been run yet. If pairs has already been run, we return nil.
-- This is because all the arguments will have already been copied into
-- metaArgs by the mergeArgs function, meaning that any other arguments
-- must be nil.
--]]
if type(key) == 'string' then
key = options.translate[key]
end
local val = metaArgs[key]
if val ~= nil then
return val
elseif metatable.donePairs or nilArgs[key] then
return nil
end
for _, argTable in ipairs(argTables) do
local argTableVal = tidyVal(key, argTable[key])
if argTableVal ~= nil then
metaArgs[key] = argTableVal
return argTableVal
end
end
nilArgs[key] = 'h'
return nil
end
metatable.__newindex = function (t, key, val)
-- This function is called when a module tries to add a new value to the
-- args table, or tries to change an existing value.
if type(key) == 'string' then
key = options.translate[key]
end
if options.readOnly then
error(
'could not write to argument table key "'
.. tostring(key)
.. '"; the table is read-only',
2
)
elseif options.noOverwrite and args[key] ~= nil then
error(
'could not write to argument table key "'
.. tostring(key)
.. '"; overwriting existing arguments is not permitted',
2
)
elseif val == nil then
--[[
-- If the argument is to be overwritten with nil, we need to erase
-- the value in metaArgs, so that __index, __pairs and __ipairs do
-- not use a previous existing value, if present; and we also need
-- to memoize the nil in nilArgs, so that the value isn't looked
-- up in the argument tables if it is accessed again.
--]]
metaArgs[key] = nil
nilArgs[key] = 'h'
else
metaArgs[key] = val
end
end
local function translatenext(invariant)
local k, v = next(invariant.t, invariant.k)
invariant.k = k
if k == nil then
return nil
elseif type(k) ~= 'string' or not options.backtranslate then
return k, v
else
local backtranslate = options.backtranslate[k]
if backtranslate == nil then
-- Skip this one. This is a tail call, so this won't cause stack overflow
return translatenext(invariant)
else
return backtranslate, v
end
end
end
metatable.__pairs = function ()
-- Called when pairs is run on the args table.
if not metatable.donePairs then
mergeArgs(argTables)
metatable.donePairs = true
end
return translatenext, { t = metaArgs }
end
local function inext(t, i)
-- This uses our __index metamethod
local v = t[i + 1]
if v ~= nil then
return i + 1, v
end
end
metatable.__ipairs = function (t)
-- Called when ipairs is run on the args table.
return inext, t, 0
end
return args
end
return arguments
3134ecce8429b810d445e29eae115e2ae4c36c53
Module:Delink
828
35
72
2024-01-03T21:05:08Z
Laggardson
2
Created page with "-- This module de-links most wikitext. require("Module:No globals") local p = {} local getArgs local function delinkReversePipeTrick(s) if s:match("^%[%[|.*[|\n]") then -- Check for newlines or multiple pipes. return s end return s:match("%[%[|(.*)%]%]") end local function delinkPipeTrick(s) -- We need to deal with colons, brackets, and commas, per [[Help:Pipe trick]]. -- First, remove the text before the first colon, if any. if s:match(":") then s = s:ma..."
Scribunto
text/plain
-- This module de-links most wikitext.
require("Module:No globals")
local p = {}
local getArgs
local function delinkReversePipeTrick(s)
if s:match("^%[%[|.*[|\n]") then -- Check for newlines or multiple pipes.
return s
end
return s:match("%[%[|(.*)%]%]")
end
local function delinkPipeTrick(s)
-- We need to deal with colons, brackets, and commas, per [[Help:Pipe trick]].
-- First, remove the text before the first colon, if any.
if s:match(":") then
s = s:match("%[%[.-:(.*)|%]%]")
-- If there are no colons, grab all of the text apart from the square brackets and the pipe.
else
s = s:match("%[%[(.*)|%]%]")
end
-- Next up, brackets and commas.
if s:match("%(.-%)$") then -- Brackets trump commas.
s = s:match("(.-) ?%(.-%)$")
elseif s:match(",") then -- If there are no brackets, display only the text before the first comma.
s = s:match("(.-),.*$")
end
return s
end
-- Return wikilink target |wikilinks=target
local function getDelinkedTarget(s)
local result = s
-- Deal with the reverse pipe trick.
if result:match("%[%[|") then
return delinkReversePipeTrick(result)
end
result = mw.uri.decode(result, "PATH") -- decode percent-encoded entities. Leave underscores and plus signs.
result = mw.text.decode(result, true) -- decode HTML entities.
-- Check for bad titles. To do this we need to find the
-- title area of the link, i.e. the part before any pipes.
local target_area
if result:match("|") then -- Find if we're dealing with a piped link.
target_area = result:match("^%[%[(.-)|.*%]%]")
else
target_area = result:match("^%[%[(.-)%]%]")
end
-- Check for bad characters.
if mw.ustring.match(target_area, "[%[%]<>{}%%%c\n]") and mw.ustring.match(target_area, "[%[%]<>{}%%%c\n]") ~= "?" then
return s
end
return target_area
end
local function getDelinkedLabel(s)
local result = s
-- Deal with the reverse pipe trick.
if result:match("%[%[|") then
return delinkReversePipeTrick(result)
end
result = mw.uri.decode(result, "PATH") -- decode percent-encoded entities. Leave underscores and plus signs.
result = mw.text.decode(result, true) -- decode HTML entities.
-- Check for bad titles. To do this we need to find the
-- title area of the link, i.e. the part before any pipes.
local target_area
if result:match("|") then -- Find if we're dealing with a piped link.
target_area = result:match("^%[%[(.-)|.*%]%]")
else
target_area = result:match("^%[%[(.-)%]%]")
end
-- Check for bad characters.
if mw.ustring.match(target_area, "[%[%]<>{}%%%c\n]") and mw.ustring.match(target_area, "[%[%]<>{}%%%c\n]") ~= "?" then
return s
end
-- Check for categories, interwikis, and files.
local colon_prefix = result:match("%[%[(.-):.*%]%]") or "" -- Get the text before the first colon.
local ns = mw.site.namespaces[colon_prefix] -- see if this is a known namespace
if mw.language.isKnownLanguageTag(colon_prefix) or (ns and (ns.canonicalName == "File" or ns.canonicalName == "Category")) then
return ""
end
-- Remove the colon if the link is using the [[Help:Colon trick]].
if result:match("%[%[:") then
result = "[[" .. result:match("%[%[:(.*%]%])")
end
-- Deal with links using the [[Help:Pipe trick]].
if mw.ustring.match(result, "^%[%[[^|]*|%]%]") then
return delinkPipeTrick(result)
end
-- Find the display area of the wikilink
if result:match("|") then -- Find if we're dealing with a piped link.
result = result:match("^%[%[.-|(.+)%]%]")
-- Remove new lines from the display of multiline piped links,
-- where the pipe is before the first new line.
result = result:gsub("\n", "")
else
result = result:match("^%[%[(.-)%]%]")
end
return result
end
local function delinkURL(s)
-- Assume we have already delinked internal wikilinks, and that
-- we have been passed some text between two square brackets [foo].
-- If the text contains a line break it is not formatted as a URL, regardless of other content.
if s:match("\n") then
return s
end
-- Check if the text has a valid URL prefix and at least one valid URL character.
local valid_url_prefixes = {"//", "http://", "https://", "ftp://", "gopher://", "mailto:", "news:", "irc://"}
local url_prefix
for _ ,v in ipairs(valid_url_prefixes) do
if mw.ustring.match(s, '^%[' .. v ..'[^"%s].*%]' ) then
url_prefix = v
break
end
end
-- Get display text
if not url_prefix then
return s
end
s = s:match("^%[" .. url_prefix .. "(.*)%]") -- Grab all of the text after the URL prefix and before the final square bracket.
s = s:match('^.-(["<> ].*)') or "" -- Grab all of the text after the first URL separator character ("<> ).
s = mw.ustring.match(s, "^%s*(%S.*)$") or "" -- If the separating character was a space, trim it off.
local s_decoded = mw.text.decode(s, true)
if mw.ustring.match(s_decoded, "%c") then
return s
end
return s_decoded
end
local function delinkLinkClass(text, pattern, delinkFunction)
if type(text) ~= "string" then
error("Attempt to de-link non-string input.", 2)
end
if type(pattern) ~= "string" or mw.ustring.sub(pattern, 1, 1) ~= "^" then
error('Invalid pattern detected. Patterns must begin with "^".', 2)
end
-- Iterate over the text string, and replace any matched text. using the
-- delink function. We need to iterate character by character rather
-- than just use gsub, otherwise nested links aren't detected properly.
local result = ""
while text ~= "" do
-- Replace text using one iteration of gsub.
text = mw.ustring.gsub(text, pattern, delinkFunction, 1)
-- Append the left-most character to the result string.
result = result .. mw.ustring.sub(text, 1, 1)
text = mw.ustring.sub(text, 2, -1)
end
return result
end
function p._delink(args)
local text = args[1] or ""
if args.refs == "yes" then
-- Remove any [[Help:Strip markers]] representing ref tags. In most situations
-- this is not a good idea - only use it if you know what you are doing!
text = mw.ustring.gsub(text, "UNIQ%w*%-ref%-%d*%-QINU", "")
end
if args.comments ~= "no" then
text = text:gsub("<!%-%-.-%-%->", "") -- Remove html comments.
end
if args.wikilinks ~= "no" and args.wikilinks ~= "target" then
-- De-link wikilinks and return the label portion of the wikilink.
text = delinkLinkClass(text, "^%[%[.-%]%]", getDelinkedLabel)
elseif args.wikilinks == "target" then
-- De-link wikilinks and return the target portions of the wikilink.
text = delinkLinkClass(text, "^%[%[.-%]%]", getDelinkedTarget)
end
if args.urls ~= "no" then
text = delinkLinkClass(text, "^%[.-%]", delinkURL) -- De-link URLs.
end
if args.whitespace ~= "no" then
-- Replace single new lines with a single space, but leave double new lines
-- and new lines only containing spaces or tabs before a second new line.
text = mw.ustring.gsub(text, "([^\n \t][ \t]*)\n([ \t]*[^\n \t])", "%1 %2")
text = text:gsub("[ \t]+", " ") -- Remove extra tabs and spaces.
end
return text
end
function p.delink(frame)
if not getArgs then
getArgs = require('Module:Arguments').getArgs
end
return p._delink(getArgs(frame, {wrappers = 'Template:Delink'}))
end
return p
4e3f4d4f5d28103166f5e2ab57e5c822ec2dd021
Module:No globals
828
36
73
2024-01-03T21:07:23Z
Laggardson
2
Created page with "local mt = getmetatable(_G) or {} function mt.__index (t, k) if k ~= 'arg' then error('Tried to read nil global ' .. tostring(k), 2) end return nil end function mt.__newindex(t, k, v) if k ~= 'arg' then error('Tried to write global ' .. tostring(k), 2) end rawset(t, k, v) end setmetatable(_G, mt)"
Scribunto
text/plain
local mt = getmetatable(_G) or {}
function mt.__index (t, k)
if k ~= 'arg' then
error('Tried to read nil global ' .. tostring(k), 2)
end
return nil
end
function mt.__newindex(t, k, v)
if k ~= 'arg' then
error('Tried to write global ' .. tostring(k), 2)
end
rawset(t, k, v)
end
setmetatable(_G, mt)
8ce3969f7d53b08bd00dabe4cc9780bc6afd412a
Module:Lang
828
37
74
2024-01-03T21:10:19Z
Laggardson
2
Created page with "--[=[ Lua support for the {{lang}}, {{lang-xx}}, and {{transl}} templates and replacement of various supporting templates. ]=] require('Module:No globals'); local getArgs = require ('Module:Arguments').getArgs; local unicode = require ("Module:Unicode data"); -- for is_latin() and is_rtl() local yesno = require ('Module:Yesno'); local lang_data = mw.loadData ('Module:Lang/data'); -- language name override and transliteration tool-tip tables local lang..."
Scribunto
text/plain
--[=[
Lua support for the {{lang}}, {{lang-xx}}, and {{transl}} templates and replacement of various supporting templates.
]=]
require('Module:No globals');
local getArgs = require ('Module:Arguments').getArgs;
local unicode = require ("Module:Unicode data"); -- for is_latin() and is_rtl()
local yesno = require ('Module:Yesno');
local lang_data = mw.loadData ('Module:Lang/data'); -- language name override and transliteration tool-tip tables
local lang_name_table = lang_data.lang_name_table; -- language codes, names, regions, scripts, suppressed scripts
local lang_table = lang_data.lang_name_table.lang;
local lang_dep_table = lang_data.lang_name_table.lang_dep;
local script_table = lang_data.lang_name_table.script;
local region_table = lang_data.lang_name_table.region;
local variant_table = lang_data.lang_name_table.variant;
local suppressed_table = lang_data.lang_name_table.suppressed;
local override_table = lang_data.override;
local synonym_table = mw.loadData ('Module:Lang/ISO 639 synonyms'); -- ISO 639-2/639-2T code translation to 639-1 code
local namespace = mw.title.getCurrentTitle().namespace; -- used for categorization
local content_lang = mw.language.getContentLanguage();
local this_wiki_lang_tag = content_lang.code; -- get this wiki's language tag
local this_wiki_lang_dir = content_lang:getDir(); -- get this wiki's language direction
local initial_style_state; -- set by lang_xx_normal() and lang_xx_italic()
local maint_cats = {}; -- maintenance categories go here
local maint_msgs = {}; -- and their messages go here
--[[--------------------------< I S _ S E T >------------------------------------------------------------------
Returns true if argument is set; false otherwise. Argument is 'set' when it exists (not nil) or when it is not an empty string.
]]
local function is_set( var )
return not (var == nil or var == '');
end
--[[--------------------------< I N V E R T _ I T A L I C S >-------------------------------------------------
This function attempts to invert the italic markup a args.text by adding/removing leading/trailing italic markup
in args.text. Like |italic=unset, |italic=invert disables automatic italic markup. Individual leading/trailing
apostrophes are converted to their html numeric entity equivalent so that the new italic markup doesn't become
bold markup inadvertently.
Leading and trailing wiki markup is extracted from args.text into separate table elements. Addition, removal,
replacement of wiki markup is handled by a string.gsub() replacement table operating only on these separate elements.
In the string.gsub() matching pattern, '.*' matches empty string as well as the three expected wiki markup patterns.
This function expects that markup in args.text is complete and correct; if it is not, oddness may result.
]]
local function invert_italics (source)
local invert_pattern_table = { -- leading/trailing markup add/remove/replace patterns
[""]="\'\'", -- empty string becomes italic markup
["\'\'"]="", -- italic markup becomes empty string
["\'\'\'"]="\'\'\'\'\'", -- bold becomes bold italic
["\'\'\'\'\'"]="\'\'\'", -- bold italic become bold
};
local seg = {};
source = source:gsub ("%f[\']\'%f[^\']", '''); -- protect single quote marks from being interpreted as bold markup
seg[1] = source:match ('^(\'\'+%f[^\']).+') or ''; -- get leading markup, if any; ignore single quote
seg[3] = source:match ('.+(%f[\']\'\'+)$') or ''; -- get trailing markup, if any; ignore single quote
if '' ~= seg[1] and '' ~= seg[3] then -- extract the 'text'
seg[2] = source:match ('^\'\'+%f[^\'](.+)%f[\']\'\'+$') -- from between leading and trailing markup
elseif '' ~= seg[1] then
seg[2] = source:match ('^\'\'+%f[^\'](.+)') -- following leading markup
elseif '' ~= seg[3] then
seg[2] = source:match ('(.+)%f[\']\'\'+$') -- preceding trailing markup
else
seg[2] = source -- when there is no markup
end
seg[1] = invert_pattern_table[seg[1]] or seg[1]; -- replace leading markup according to pattern table
seg[3] = invert_pattern_table[seg[3]] or seg[3]; -- replace leading markup according to pattern table
return table.concat (seg); -- put it all back together and done
end
--[[--------------------------< V A L I D A T E _ I T A L I C >------------------------------------------------
validates |italic= or |italics= assigned values.
When |italic= is set and has an acceptible assigned value, return the matching css font-style property value or,
for the special case 'default', return nil.
When |italic= is not set, or has an unacceptible assigned value, return nil and a nil error message.
When both |italic= and |italics= are set, returns nil and a 'conflicting' error message.
The return value nil causes the calling lang, lang_xx, or transl function to set args.italic according to the template's
defined default ('inherit' for {{lang}}, 'inherit' or 'italic' for {{lang-xx}} depending on
the individual template's requirements, 'italic' for {{transl}}) or to the value appropriate to |script=, if set ({{lang}}
and {{lang-xx}} only).
Accepted values and the values that this function returns are are:
nil - when |italic= absent or not set; returns nil
default - for completeness, should rarely if ever be used; returns nil
yes - force args.text to be rendered in italic font; returns 'italic'
no - force args.text to be rendered in normal font; returns 'normal'
unset - disables font control so that font-style applied to text is dictated by markup inside or outside the template; returns 'inherit'
invert - disables font control so that font-style applied to text is dictated by markup outside or inverted inside the template; returns 'invert'
]]
local function validate_italic (args)
local properties = {['yes'] = 'italic', ['no'] = 'normal', ['unset'] = 'inherit', ['invert'] = 'invert', ['default'] = nil};
local count = 0
for _, arg in pairs {'italic', 'italics', 'i'} do
if args[arg] then
count = count + 1
end
end
if count > 1 then -- return nil and an error message if more than one is set
return nil, 'only one of |italic=, |italics=, or |i= can be specified';
end
return properties[args.italic or args.italics or args.i], nil; -- return an appropriate value and a nil error message
end
--[=[--------------------------< V A L I D A T E _ C A T _ A R G S >----------------------------------------------------------
Default behavior of the {{lang}} and {{lang-xx}} templates is to add categorization when the templates are used in mainspace.
This default functionality may be suppressed by setting |nocat=yes or |cat=no. This function selects one of these two parameters
to control categorization.
Because having two parameters with 'opposite' names and 'opposite' values is confusing, this function accepts only affirmative
values for |nocat= and only negative values for |cat=; in both cases the 'other' sense (and non-sense) is not accepted and the
parameter is treated as if it were not set in the template.
Sets args.nocat to true if categorization is to be turned off; to nil if the default behavior should apply.
Accepted values for |nocat= are the text strings:
'yes', 'y', 'true', 't', on, '1' -- [[Module:Yesno]] returns logical true for all of these; false or nil else
for |cat=
'no', 'n', 'false', 'f', 'off', '0' -- [[Module:Yesno]] returns logical false for all of these; true or nil else
]=]
local function validate_cat_args (args)
if not (args.nocat or args.cat) then -- both are nil, so categorize
return;
end
if false == yesno (args.cat) or true == yesno (args.nocat) then
args.nocat = true; -- set to true when args.nocat is affirmative; nil else (as if the parameter were not set in the template)
else -- args.nocat is the parameter actually used.
args.nocat = nil;
end
end
--[[--------------------------< I N _ A R R A Y >--------------------------------------------------------------
Whether needle is in haystack
]]
local function in_array ( needle, haystack )
if needle == nil then
return false;
end
for n,v in ipairs( haystack ) do
if v == needle then
return n;
end
end
return false;
end
--[[--------------------------< F O R M A T _ I E T F _ T A G >------------------------------------------------
prettify ietf tags to use recommended subtag formats:
code: lower case
script: sentence case
region: upper case
variant: lower case
private: lower case prefixed with -x-
]]
local function format_ietf_tag (code, script, region, variant, private)
local out = {};
if is_set (private) then
return table.concat ({code:lower(), 'x', private:lower()}, '-'); -- if private, all other tags ignored
end
table.insert (out, code:lower());
if is_set (script) then
script = script:lower():gsub ('^%a', string.upper);
table.insert (out, script);
end
if is_set (region) then
table.insert (out, region:upper());
end
if is_set (variant) then
table.insert (out, variant:lower());
end
return table.concat (out, '-');
end
--[[--------------------------< G E T _ I E T F _ P A R T S >--------------------------------------------------
extracts and returns IETF language tag parts:
primary language subtag (required) - 2 or 3 character IANA language code
script subtag - four character IANA script code
region subtag - two-letter or three digit IANA region code
variant subtag - four digit or 5-8 alnum variant code; only one variant subtag supported
private subtag - x- followed by 1-8 alnum private code; only supported with the primary language tag
in any one of these forms
lang lang-variant
lang-script lang-script-variant
lang-region lang-region-variant
lang-script-region lang-script-region-variant
lang-x-private
each of lang, script, region, variant, and private, when used, must be valid
Languages with both two- and three-character code synonyms are promoted to the two-character synonym because
the IANA registry file omits the synonymous three-character code; we cannot depend on browsers understanding
the synonymous three-character codes in the lang= attribute.
For {{lang-xx}} templates, the parameters |script=, |region=, and |variant= are supported (not supported in {{lang}}
because those parameters are superfluous to the IETF subtags in |code=)
returns six values; all lower case. Valid parts are returned as themselves; omitted parts are returned as empty strings, invalid
parts are returned as nil; the sixth returned item is an error message (if an error detected) or nil.
see http://www.rfc-editor.org/rfc/bcp/bcp47.txt section 2.1
]]
local function get_ietf_parts (source, args_script, args_region, args_variant)
local code, script, region, variant, private; -- ietf tag parts
if not is_set (source) then
return nil, nil, nil, nil, nil, 'missing language tag';
end
local pattern = { -- table of tables holding acceptibe ietf tag patterns and short names of the ietf part captured by the pattern
{'^(%a%a%a?)%-(%a%a%a%a)%-(%a%a)%-(%d%d%d%d)$', 's', 'r', 'v'}, -- 1 - ll-Ssss-RR-variant (where variant is 4 digits)
{'^(%a%a%a?)%-(%a%a%a%a)%-(%d%d%d)%-(%d%d%d%d)$', 's', 'r', 'v'}, -- 2 - ll-Ssss-DDD-variant (where region is 3 digits; variant is 4 digits)
{'^(%a%a%a?)%-(%a%a%a%a)%-(%a%a)%-(%w%w%w%w%w%w?%w?%w?)$', 's', 'r', 'v'}, -- 3 - ll-Ssss-RR-variant (where variant is 5-8 alnum characters)
{'^(%a%a%a?)%-(%a%a%a%a)%-(%d%d%d)%-(%w%w%w%w%w%w?%w?%w?)$', 's', 'r', 'v'}, -- 4 - ll-Ssss-DDD-variant (where region is 3 digits; variant is 5-8 alnum characters)
{'^(%a%a%a?)%-(%a%a%a%a)%-(%d%d%d%d)$', 's', 'v'}, -- 5 - ll-Ssss-variant (where variant is 4 digits)
{'^(%a%a%a?)%-(%a%a%a%a)%-(%w%w%w%w%w%w?%w?%w?)$', 's', 'v'}, -- 6 - ll-Ssss-variant (where variant is 5-8 alnum characters)
{'^(%a%a%a?)%-(%a%a)%-(%d%d%d%d)$', 'r', 'v'}, -- 7 - ll-RR-variant (where variant is 4 digits)
{'^(%a%a%a?)%-(%d%d%d)%-(%d%d%d%d)$', 'r', 'v'}, -- 8 - ll-DDD-variant (where region is 3 digits; variant is 4 digits)
{'^(%a%a%a?)%-(%a%a)%-(%w%w%w%w%w%w?%w?%w?)$', 'r', 'v'}, -- 9 - ll-RR-variant (where variant is 5-8 alnum characters)
{'^(%a%a%a?)%-(%d%d%d)%-(%w%w%w%w%w%w?%w?%w?)$', 'r', 'v'}, -- 10 - ll-DDD-variant (where region is 3 digits; variant is 5-8 alnum characters)
{'^(%a%a%a?)%-(%d%d%d%d)$', 'v'}, -- 11 - ll-variant (where variant is 4 digits)
{'^(%a%a%a?)%-(%w%w%w%w%w%w?%w?%w?)$', 'v'}, -- 12 - ll-variant (where variant is 5-8 alnum characters)
{'^(%a%a%a?)%-(%a%a%a%a)%-(%a%a)$', 's', 'r'}, -- 13 - ll-Ssss-RR
{'^(%a%a%a?)%-(%a%a%a%a)%-(%d%d%d)$', 's', 'r'}, -- 14 - ll-Ssss-DDD (region is 3 digits)
{'^(%a%a%a?)%-(%a%a%a%a)$', 's'}, -- 15 - ll-Ssss
{'^(%a%a%a?)%-(%a%a)$', 'r'}, -- 16 - ll-RR
{'^(%a%a%a?)%-(%d%d%d)$', 'r'}, -- 17 - ll-DDD (region is 3 digits)
{'^(%a%a%a?)$'}, -- 18 - ll
{'^(%a%a%a?)%-x%-(%w%w?%w?%w?%w?%w?%w?%w?)$', 'p'}, -- 19 - ll-x-pppppppp (private is 1-8 alnum characters)
}
local t = {}; -- table of captures; serves as a translator between captured ietf tag parts and named variables
for i, v in ipairs (pattern) do -- spin through the pattern table looking for a match
local c1, c2, c3, c4; -- captures in the 'pattern' from the pattern table go here
c1, c2, c3, c4 = source:match (pattern[i][1]); -- one or more captures set if source matches pattern[i])
if c1 then -- c1 always set on match
code = c1; -- first capture is always code
t = {
[pattern[i][2] or 'x'] = c2, -- fill the table of captures with the rest of the captures
[pattern[i][3] or 'x'] = c3, -- take index names from pattern table and assign sequential captures
[pattern[i][4] or 'x'] = c4, -- index name may be nil in pattern[i] table so "or 'x'" spoofs a name for this index in this table
};
script = t.s or ''; -- translate table contents to named variables;
region = t.r or ''; -- absent table entries are nil so set named ietf parts to empty string for concatenation
variant= t.v or '';
private = t.p or '';
break; -- and done
end
end
if not code then
return nil, nil, nil, nil, nil, table.concat ({'unrecognized language tag: ', source}); -- don't know what we got but it is malformed
end
code = code:lower(); -- ensure that we use and return lower case version of this
if not (override_table[code] or lang_table[code] or synonym_table[code] or lang_dep_table[code]) then
return nil, nil, nil, nil, nil, table.concat ({'unrecognized language code: ', code}); -- invalid language code, don't know about the others (don't care?)
end
if synonym_table[code] then -- if 639-2/639-2T code has a 639-1 synonym
table.insert (maint_cats, table.concat ({'Lang and lang-xx code promoted to ISO 639-1|', code}));
table.insert (maint_msgs, table.concat ({'code: ', code, ' promoted to code: ', synonym_table[code]}));
code = synonym_table[code]; -- use the synonym
end
if is_set (script) then
if is_set (args_script) then
return code, nil, nil, nil, nil, 'redundant script tag'; -- both code with script and |script= not allowed
end
else
script = args_script or ''; -- use args.script if provided
end
if is_set (script) then
script = script:lower(); -- ensure that we use and return lower case version of this
if not script_table[script] then
return code, nil, nil, nil, nil, table.concat ({'unrecognized script: ', script, ' for code: ', code}); -- language code ok, invalid script, don't know about the others (don't care?)
end
end
if suppressed_table[script] then -- ensure that code-script does not use a suppressed script
if in_array (code, suppressed_table[script]) then
return code, nil, nil, nil, nil, table.concat ({'script: ', script, ' not supported for code: ', code}); -- language code ok, script is suppressed for this code
end
end
if is_set (region) then
if is_set (args_region) then
return code, nil, nil, nil, nil, 'redundant region tag'; -- both code with region and |region= not allowed
end
else
region = args_region or ''; -- use args.region if provided
end
if is_set (region) then
region = region:lower(); -- ensure that we use and return lower case version of this
if not region_table[region] then
return code, script, nil, nil, nil, table.concat ({'unrecognized region: ', region, ' for code: ', code});
end
end
if is_set (variant) then
if is_set (args_variant) then
return code, nil, nil, nil, nil, 'redundant variant tag'; -- both code with variant and |variant= not allowed
end
else
variant = args_variant or ''; -- use args.variant if provided
end
if is_set (variant) then
variant = variant:lower(); -- ensure that we use and return lower case version of this
if not variant_table[variant] then -- make sure variant is valid
return code, script, region, nil, nil, table.concat ({'unrecognized variant: ', variant});
end -- does this duplicate/replace tests in lang() and lang_xx()?
if is_set (script) then -- if script set it must be part of the 'prefix'
if not in_array (table.concat ({code, '-', script}), variant_table[variant]['prefixes']) then
return code, script, region, nil, nil, table.concat ({'unrecognized variant: ', variant, ' for code-script pair: ', code, '-', script});
end
elseif is_set (region) then -- if region set, there are some prefixes that require lang code and region (en-CA-newfound)
if not in_array (code, variant_table[variant]['prefixes']) then -- first see if lang code is all that's required (en-oxendict though en-GB-oxendict is preferred)
if not in_array (table.concat ({code, '-', region}), variant_table[variant]['prefixes']) then -- now try for lang code and region (en-CA-newfound)
return code, script, region, nil, nil, table.concat ({'unrecognized variant: ', variant, ' for code-region pair: ', code, '-', region});
end
end
else -- cheap way to determine if there are prefixes; fonipa and others don't have prefixes; # operator always returns 0
if variant_table[variant]['prefixes'][1] and not in_array (code, variant_table[variant]['prefixes']) then
return code, script, region, nil, nil, table.concat ({'unrecognized variant: ', variant, ' for code: ', code});
end
end
end
if is_set (private) then
private = private:lower(); -- ensure that we use and return lower case version of this
if not override_table[table.concat ({code, '-x-', private})] then -- make sure private tag is valid; note that index
return code, script, region, nil, nil, table.concat ({'unrecognized private tag: ', private});
end
end
return code, script, region, variant, private, nil; -- return the good bits; make sure that msg is nil
end
--[[--------------------------< M A K E _ E R R O R _ M S G >--------------------------------------------------
assembles an error message from template name, message text, help link, and error category.
]]
local function make_error_msg (msg, args, template)
local out = {};
local category;
if 'Transl' == template then
category = 'Transl';
else
category = 'Lang and lang-xx'
end
table.insert (out, table.concat ({'[', args.text or 'undefined', '] '})); -- for error messages output args.text if available
table.insert (out, table.concat ({'<span style=\"color:#d33\">Error: {{', template, '}}: '}));
table.insert (out, msg);
table.insert (out, table.concat ({' ([[:Category:', category, ' template errors|help]])'}));
table.insert (out, '</span>');
if (0 == namespace or 10 == namespace) and not args.nocat then -- categorize in article space (and template space to take care of broken usages)
table.insert (out, table.concat ({'[[Category:', category, ' template errors]]'}));
end
return table.concat (out);
end
--[=[-------------------------< M A K E _ W I K I L I N K >----------------------------------------------------
Makes a wikilink; when both link and display text is provided, returns a wikilink in the form [[L|D]]; if only
link is provided, returns a wikilink in the form [[L]]; if neither are provided or link is omitted, returns an
empty string.
]=]
local function make_wikilink (link, display)
if is_set (link) then
if is_set (display) then
return table.concat ({'[[', link, '|', display, ']]'});
else
return table.concat ({'[[', link, ']]'});
end
else
return '';
end
end
--[[--------------------------< D I V _ M A R K U P _ A D D >--------------------------------------------------
adds <i> and </i> tags to list-item text or to implied <p>..</p> text. mixed not supported
]]
local function div_markup_add (text, style)
local implied_p = {};
if text:find ('^\n[%*:;#]') then -- look for list markup; list markup must begin at start of text
if 'italic' == style then
return text:gsub ('(\n[%*:;#]+)([^\n]+)', '%1<i>%2</i>'); -- insert italic markup at each list item
else
return text;
end
end
if text:find ('\n+') then -- look for any number of \n characters in text
text = text:gsub ('([^\n])\n([^\n])', '%1 %2'); -- replace single newline characters with a space character which mimics mediawiki
if 'italic' == style then
text = text:gsub('[^\n]+', '<p><i>%1</i></p>'); -- insert p and italic markup tags at each impled p (two or more consecutive '\n\n' sequences)
else
text = text:gsub ('[^\n]+', '<p>%1</p>'); -- insert p markup at each impled p
text = text:gsub ('\n', ''); -- strip newline characters
end
end
return text;
end
--[[--------------------------< T I T L E _ W R A P P E R _ M A K E >------------------------------------------
makes a <span title="<title text>"><content_text></span> or <div title="<title text>"><content_text></div> where
<title text> is in the tool-tip in the wiki's local language and <content_text> is non-local-language text in
html markup. This because the lang= attibute applies to the content of its enclosing tag.
<tag> holds a string 'div' or 'span' used to choose the correct wrapping tag
]]
local function title_wrapper_make (title_text, content_text, tag)
local wrapper_t = {};
table.insert (wrapper_t, table.concat ({'<', tag})); -- open opening wrapper tag
table.insert (wrapper_t, ' title=\"'); -- begin title attribute
table.insert (wrapper_t, title_text); -- add <title_text>
table.insert (wrapper_t, '\">'); -- end title attribute and close opening wrapper tag
table.insert (wrapper_t, content_text); -- add <content_text>
table.insert (wrapper_t, table.concat ({'</', tag, '>'})); -- add closing wrapper tag
return table.concat (wrapper_t); -- make a big string and done
end
--[[--------------------------< M A K E _ T E X T _ H T M L >--------------------------------------------------
Add the html markup to text according to the type of content that it is: <span> or <i> tags for inline content or
<div> tags for block content
The lang= attribute also applies to the content of the tag where it is placed so this is wrong because 'Spanish
language text' is English:
<i lang="es" title="Spanish language text">casa</i>
should be:
<span title="Spanish language text"><i lang="es">casa</i></span>
or for <div>...</div>:
<div title="Spanish language text"><div lang="es"><spanish-language-text></div></div>
]]
local function make_text_html (code, text, tag, rtl, style, size, language)
local html_t = {};
local style_added = '';
local wrapper_tag = tag; -- <tag> gets modified so save a copy for use when/if we create a wrapper span or div
if text:match ('^%*') then
table.insert (html_t, '*'); -- move proto language text prefix outside of italic markup if any; use numeric entity because plain splat confuses MediaWiki
text = text:gsub ('^%*', ''); -- remove the splat from the text
end
if 'span' == tag then -- default html tag for inline content
if 'italic' == style then -- but if italic
tag = 'i'; -- change to <i> tags
end
else -- must be div so go
text = div_markup_add (text, style); -- handle implied <p>, implied <p> with <i>, and list markup (*;:#) with <i>
end
table.insert (html_t, table.concat ({'<', tag})); -- open the <i>, <span>, or <div> html tag
code = code:gsub ('%-x%-.*', ''); -- strip private use subtag from code tag because meaningless outside of wikipedia
table.insert (html_t, table.concat ({' lang="', code, '\"'})); -- add language attribute
if (rtl or unicode.is_rtl(text)) and ('ltr' == this_wiki_lang_dir) then -- text is right-to-left on a left-to-right wiki
table.insert (html_t, ' dir="rtl"'); -- add direction attribute for right-to-left languages
elseif not (rtl or unicode.is_rtl(text)) and ('rtl' == this_wiki_lang_dir) then -- text is left-to-right on a right-to-left wiki
table.insert (html_t, ' dir="ltr"'); -- add direction attribute for left-to-right languages
end
if 'normal' == style then -- when |italic=no
table.insert (html_t, ' style=\"font-style: normal;'); -- override external markup, if any
style_added = '\"'; -- remember that style attribute added and is not yet closed
end
if is_set (size) then -- when |size=<something>
if is_set (style_added) then
table.insert (html_t, table.concat ({' font-size: ', size, ';'})); -- add when style attribute already inserted
else
table.insert (html_t, table.concat ({' style=\"font-size: ', size, ';'})); -- create style attribute
style_added = '\"'; -- remember that style attribute added and is not yet closed
end
end
table.insert (html_t, table.concat ({style_added, '>'})); -- close the opening html tag
table.insert (html_t, text); -- insert the text
table.insert (html_t, table.concat ({'</', tag, '>'})); -- close the 'text' <i>, <span>, or <div> html tag
if is_set (language) then -- create a <title_text> string for the title= attribute in a wrapper span or div
local title_text;
if 'zxx' == code then -- special case for this tag 'no linguistic content'
title_text = table.concat ({language, ' text'}); -- not a language so don't use 'language' in title text
elseif mw.ustring.find (language, 'languages', 1, true) then
title_text = table.concat ({language, ' collective text'}); -- for collective languages
else
title_text = table.concat ({language, '-language text'}); -- for individual languages
end
return title_wrapper_make (title_text, table.concat (html_t), wrapper_tag);
else
return table.concat (html_t);
end
end
--[=[-------------------------< M A K E _ C A T E G O R Y >----------------------------------------------------
For individual language, <language>, returns:
[[Category:Articles containing <language>-language text]]
for English:
[[Category:Articles containing explicitly cited English-language text]]
for ISO 639-2 collective languages (and for 639-1 bh):
[[Category:Articles with text in <language> languages]]
]=]
local function make_category (code, language_name, nocat, name_get)
local cat = {};
local retval;
if ((0 ~= namespace) or nocat) and not name_get then -- only categorize in article space
return ''; -- return empty string for concatenation
end
if mw.ustring.find (language_name, 'languages', 1, true) then
return table.concat ({'[[Category:Articles with text in ', language_name, ']]'});
end
table.insert (cat, '[[Category:Articles containing ');
if this_wiki_lang_tag == code then
table.insert (cat, 'explicitly cited ' .. language_name); -- unique category name for the local language
else
table.insert (cat, language_name);
end
table.insert (cat, '-language text]]');
return table.concat (cat);
end
--[[--------------------------< M A K E _ T R A N S L I T >----------------------------------------------------
return translit <i lang=xx-Latn>...</i> where xx is the language code; else return empty string
The value |script= is not used in {{transl}} for this purpose; instead it uses |code. Because language scripts
are listed in the {{transl}} switches they are included in the data tables. The script parameter is introduced
at {{Language with name and transliteration}}. If |script= is set, this function uses it in preference to code.
To avoid confusion, in this module and the templates that use it, the transliteration script parameter is renamed
to be |translit-script= (in this function, tscript)
This function is used by both lang_xx() and transl()
lang_xx() always provides code, language_name, and translit; may provide tscript; never provides style
transl() always provides language_name, translit, and one of code or tscript, never both; always provides style
For {{transl}}, style only applies when a language code is provided
]]
local function make_translit (code, language_name, translit, std, tscript, style)
local title;
local out_t = {};
local title_t = lang_data.translit_title_table; -- table of transliteration standards and the language codes and scripts that apply to those standards
local title_text = ''; -- tool tip text for title= attribute
std = std and std:lower(); -- lower case for table indexing
if not is_set (std) and not is_set (tscript) then -- when neither standard nor script specified
title_text = language_name; -- write a generic tool tip
if not mw.ustring.find (language_name, 'languages', 1, true) then -- collective language names (plural 'languages' is part of the name)
title_text = title_text .. '-language'; -- skip this text (individual and macro languages only)
end
title_text = title_text .. ' romanization'; -- finish the tool tip; use romanization when neither script nor standard supplied
elseif is_set (std) and is_set (tscript) then -- when both are specified
if title_t[std] then -- and if standard is legitimate
if title_t[std][tscript] then -- and if script for that standard is legitimate
if script_table[tscript] then
title_text = title_text .. table.concat ({title_t[std][tscript:lower()], ' (', script_table[tscript], ' script) transliteration'}); -- add the appropriate text to the tool tip
else
title_text = title_text .. title_t[std]['default']; -- use the default if script not in std table; TODO: maint cat? error message because script not found for this standard?
end
else
title_text = title_text .. title_t[std]['default']; -- use the default if script not in std table; TODO: maint cat? error message because script not found for this standard?
end
else
return ''; -- invalid standard, setup for error message
end
elseif is_set (std) then -- translit-script not set, use language code
if not title_t[std] then return ''; end -- invalid standard, setup for error message
if title_t[std][code] then -- if language code is in the table (transl may not provide a language code)
title_text = title_text .. table.concat ({title_t[std][code:lower()], ' (', language_name, ' language) transliteration'}); -- add the appropriate text to the tool tip
else -- code doesn't match
title_text = title_text .. title_t[std]['default']; -- so use the standard's default
end
else -- here if translit-script set but translit-std not set
if title_t['no_std'][tscript] then
title_text = title_text .. title_t['no_std'][tscript]; -- use translit-script if set
elseif title_t['no_std'][code] then
title_text = title_text .. title_t['no_std'][code]; -- use language code
else
if is_set (tscript) then
title_text = title_text .. table.concat ({language_name, '-script transliteration'}); -- write a script tool tip
elseif is_set (code) then
if not mw.ustring.find (language_name, 'languages', 1, true) then -- collective language names (plural 'languages' is part of the name)
title_text = title_text .. '-language'; -- skip this text (individual and macro languages only)
end
title_text = title_text .. ' transliteration'; -- finish the tool tip
else
title_text = title_text .. ' transliteration'; -- generic tool tip (can we ever get here?)
end
end
end
local close_tag;
if is_set (code) then -- when a language code is provided (always with {{lang-xx}} templates, not always with {{transl}})
if not style then -- nil for the default italic style
table.insert (out_t, "<i lang=\""); -- so use <i> tag
close_tag = '</i>'; -- tag to be used when closing
else
table.insert (out_t, table.concat ({'<span style=\"font-style: ', style, '\" lang=\"'})); -- non-standard style, construct a span tag for it
close_tag = '</span>'; -- tag to be used when closing
end
table.insert (out_t, code);
table.insert (out_t, "-Latn\">"); -- transliterations are always Latin script
else
table.insert (out_t, "<span>"); -- when no language code: no lang= attribute, not italic ({{transl}} only)
close_tag = '</span>';
end
table.insert (out_t, translit); -- add the translit text
table.insert (out_t, close_tag); -- and add the appropriate </i> or </span>
if '' == title_text then -- when there is no need for a tool-tip
return table.concat (out_t); -- make a string and done
else
return title_wrapper_make (title_text, table.concat (out_t), 'span'); -- wrap with a tool-tip span and don
end
end
--[[--------------------------< V A L I D A T E _ T E X T >----------------------------------------------------
This function checks the content of args.text and returns empty string if nothing is amiss else it returns an
error message. The tests are for empty or missing text and for improper or disallowed use of apostrophe markup.
Italic rendering is controlled by the |italic= template parameter so italic markup should never appear in args.text
either as ''itself'' or as '''''bold italic''''' unless |italic=unset or |italic=invert.
]]
local function validate_text (template, args)
if not is_set (args.text) then
return make_error_msg ('no text', args, template);
end
if args.text:find ("%f[\']\'\'\'\'%f[^\']") or args.text:find ("\'\'\'\'\'[\']+") then -- because we're looking, look for 4 appostrophes or 6+ appostrophes
return make_error_msg ('text has malformed markup', args, template);
end
local style = args.italic;
if ('unset' ~= style) and ('invert' ~=style) then
if args.text:find ("%f[\']\'\'%f[^\']") or args.text:find ("%f[\']\'\'\'\'\'%f[^\']") then -- italic but not bold, or bold italic
return make_error_msg ('text has italic markup', args, template);
end
end
end
--[[--------------------------< R E N D E R _ M A I N T >------------------------------------------------------
render mainenance messages and categories
]]
local function render_maint(nocat)
local maint = {};
if 0 < #maint_msgs then -- when there are maintenance messages
table.insert (maint, table.concat ({'<span class="lang-comment" style="font-style: normal; display: none; color: #33aa33; margin-left: 0.3em;">'})); -- opening <span> tag
for _, msg in ipairs (maint_msgs) do
table.insert (maint, table.concat ({msg, ' '})); -- add message strings
end
table.insert (maint, '</span>'); -- close the span
end
if (0 < #maint_cats) and (0 == namespace) and not nocat then -- when there are maintenance categories; article namespace only
for _, cat in ipairs (maint_cats) do
table.insert (maint, table.concat ({'[[Category:', cat, ']]'})); -- format and add the categories
end
end
return table.concat (maint);
end
--[[--------------------------< P R O T O _ P R E F I X >------------------------------------------------------
for proto languages, text is prefixed with a splat. We do that here as a flag for make_text_html() so that a splat
will be rendered outside of italic markup (if used). If the first character in text here is already a splat, we
do nothing
proto_param is boolean or nil; true adds splat prefix regardless of language name; false removes and / or inhibits
regardless of language name; nil does nothing; presumes that the value in text is correct but removes extra splac
]]
local function proto_prefix (text, language_name, proto_param)
if false == proto_param then -- when forced by |proto=no
return text:gsub ('^%**', ''); -- return text without splat prefix regardless of language name or existing splat prefix in text
elseif (language_name:find ('^Proto%-') or (true == proto_param)) then -- language is a proto or forced by |proto=yes
return text:gsub ('^%**', '*'); -- prefix proto-language text with a splat; also removes duplicate prefixing splats
end
return text:gsub ('^%*+', '*'); -- return text unmolested except multiple splats reduced to one splat
end
--[[--------------------------< H A S _ P O E M _ T A G >------------------------------------------------------
looks for a poem strip marker in text; returns true when found; false else
auto-italic detection disabled when text has poem stripmarker because it is not possible for this code to know
the content that will replace the stripmarker.
]]
local function has_poem_tag (text)
return text:find ('\127[^\127]*UNIQ%-%-poem%-[%a%d]+%-QINU[^\127]*\127') and true or false;
end
--[[--------------------------< H T M L _ T A G _ S E L E C T >------------------------------------------------
Inspects content of and selectively trims text. Returns text and the name of an appropriate html tag for text.
If text contains:
\n\n text has implied <p>..</p> tags - trim leading and trailing whitespace and return
If text begins with list markup:
\n* unordered
\n; definition
\n: definition
\n# ordered
trim all leading whitespace except \n and trim all trailing whitespace
If text contains <poem>...</poem> stripmarker, return text unmodified and choose <div>..</div> tags because
the stripmarker is replaced with text wrapped in <div>..</div> tags.
]]
local function html_tag_select (text)
local tag;
if has_poem_tag (text) then -- contains poem stripmarker (we can't know the content of that)
tag = 'div'; -- poem replacement is in div tags so lang must use div tags
elseif mw.text.trim (text):find ('\n\n+') then -- contains implied p tags
text = mw.text.trim (text); -- trim leading and trailing whitespace characters
tag = 'div'; -- must be div because span may not contain p tags (added later by MediaWiki); poem replacement is in div tags
elseif text:find ('\n[%*:;%#]') then -- if text has list markup
text = text:gsub ('^[\t\r\f ]*', ''):gsub ('%s*$', ''); -- trim all whitespace except leading newline character '\n'
tag = 'div'; -- must be div because span may not contain ul, dd, dl, ol tags (added later by MediaWiki)
else
text = mw.text.trim (text); -- plain text
tag = 'span'; -- so span is fine
end
return text, tag;
end
--[[--------------------------< V A L I D A T E _ P R O T O >--------------------------------------------------
validates value assigned to |proto=; permitted values are yes and no; yes returns as true, no returns as false,
empty string (or parameter omitted) returns as nil; any other value returns as nil with a second return value of
true indicating that some other value has been assigned to |proto=
]]
local function validate_proto (proto_param)
if 'yes' == proto_param then
return true;
elseif 'no' == proto_param then
return false;
elseif is_set (proto_param) then
return nil, true; -- |proto= something other than 'yes' or 'no'
else
return nil; -- missing or empty
end
end
--[[--------------------------< L A N G U A G E _ N A M E _ G E T >--------------------------------------------
common function to return language name from the data set according to IETF tag
returns language name if found in data tables; nil else
]]
local function language_name_get (ietf, code, cat)
ietf = ietf:lower(); -- ietf:lower() because format_ietf_tag() returns mixed case
local name; -- remains nil if not found
if override_table[ietf] then -- look for whole IETF tag in override table
name = override_table[ietf];
elseif override_table[code] then -- not there so try basic language tag
name = override_table[code];
elseif lang_table[code] then -- shift to iana active tag/name table
name = lang_table[code];
elseif lang_dep_table[code] then -- try the iana deprecated tag/name table
name = lang_dep_table[code];
end
if lang_dep_table[code] and cat then -- because deprecated code may have been overridden to en.wiki preferred name
table.insert (maint_cats, table.concat ({'Lang and lang-xx using deprecated ISO 639 codes|', code}));
table.insert (maint_msgs, table.concat ({'code: ', code, ' is deprecated'}));
end
return name; -- name from data tables or nil
end
--[[--------------------------< _ L A N G >--------------------------------------------------------------------
entry point for {{lang}}
there should be no reason to set parameters in the {{lang}} {{#invoke:}}
<includeonly>{{#invoke:lang|lang}}</includeonly>
parameters are received from the template's frame (parent frame)
]]
local function _lang (args)
local out = {};
local language_name; -- used to make category names
local category_name; -- same as language_name except that it retains any parenthetical disambiguators (if any) from the data set
local subtags = {}; -- IETF subtags script, region, variant, and private
local code; -- the language code
local msg; -- for error messages
local tag = 'span'; -- initial value for make_text_html()
local template = args.template or 'Lang';
validate_cat_args (args); -- determine if categorization should be suppressed
if args[1] and args.code then
return make_error_msg ('conflicting: {{{1}}} and |code=', args, template);
else
args.code = args[1] or args.code; -- prefer args.code
end
if args[2] and args.text then
return make_error_msg ('conflicting: {{{2}}} and |text=', args, template);
else
args.text = args[2] or args.text; -- prefer args.text
end
msg = validate_text (template, args); -- ensure that |text= is set
if is_set (msg) then -- msg is an already-formatted error message
return msg;
end
args.text, tag = html_tag_select (args.text); -- inspects text; returns appropriate html tag with text trimmed accordingly
args.rtl = args.rtl == 'yes'; -- convert to boolean: 'yes' -> true, other values -> false
args.proto, msg = validate_proto (args.proto); -- return boolean, or nil, or nil and error message flag
if msg then
return make_error_msg (table.concat ({'invalid |proto=: ', args.proto}), args, template);
end
code, subtags.script, subtags.region, subtags.variant, subtags.private, msg = get_ietf_parts (args.code); -- |script=, |region=, |variant= not supported because they should be part of args.code ({{{1}}} in {{lang}})
if msg then
return make_error_msg ( msg, args, template);
end
args.italic, msg = validate_italic (args);
if msg then
return make_error_msg (msg, args, template);
end
if nil == args.italic then -- nil when |italic= absent or not set or |italic=default; args.italic controls
if ('latn' == subtags.script) or -- script is latn
(this_wiki_lang_tag ~= code and not is_set (subtags.script) and not has_poem_tag (args.text) and unicode.is_Latin (args.text)) then -- text not this wiki's language, no script specified and not in poem markup but is wholly latn script (auto-italics)
args.italic = 'italic'; -- DEFAULT for {{lang}} templates is upright; but if latn script set for font-style:italic
else
args.italic = 'inherit'; -- italic not set; script not latn; inherit current style
end
end
if is_set (subtags.script) then -- if script set, override rtl setting
if in_array (subtags.script, lang_data.rtl_scripts) then
args.rtl = true; -- script is an rtl script
else
args.rtl = false; -- script is not an rtl script
end
end
args.code = format_ietf_tag (code, subtags.script, subtags.region, subtags.variant, subtags.private); -- format to recommended subtag styles
language_name = language_name_get (args.code, code, true); -- get language name; try ietf tag first, then code w/o variant then code w/ variant
if 'invert' == args.italic and 'span' == tag then -- invert only supported for in-line content
args.text = invert_italics (args.text)
end
args.text = proto_prefix (args.text, language_name, args.proto); -- prefix proto-language text with a splat
table.insert (out, make_text_html (args.code, args.text, tag, args.rtl, args.italic, args.size, language_name));
table.insert (out, make_category (code, language_name, args.nocat));
table.insert (out, render_maint(args.nocat)); -- maintenance messages and categories
return table.concat (out); -- put it all together and done
end
--[[--------------------------< L A N G >----------------------------------------------------------------------
entry point for {{lang}}
there should be no reason to set parameters in the {{lang}} {{#invoke:}}
<includeonly>{{#invoke:lang|lang}}</includeonly>
parameters are received from the template's frame (parent frame)
]]
local function lang (frame)
local args = getArgs (frame, { -- this code so that we can detect and handle wiki list markup in text
valueFunc = function (key, value)
if 2 == key or 'text' == key then -- the 'text' parameter; do not trim wite space
return value; -- return untrimmed 'text'
elseif value then -- all other values: if the value is not nil
value = mw.text.trim (value); -- trim whitespace
if '' ~= value then -- empty string when value was only whitespace
return value;
end
end
return nil; -- value was empty or contained only whitespace
end -- end of valueFunc
});
return _lang (args);
end
--[[--------------------------< L A N G _ X X >----------------------------------------------------------------
For the {{lang-xx}} templates, the only parameter required to be set in the template is the language code. All
other parameters can, usually should, be written in the template call. For {{lang-xx}} templates for languages
that can have multiple writing systems, it may be appropriate to set |script= as well.
For each {{lang-xx}} template choose the appropriate entry-point function so that this function knows the default
styling that should be applied to text.
For normal, upright style:
<includeonly>{{#invoke:lang|lang_xx_inherit|code=xx}}</includeonly>
For italic style:
<includeonly>{{#invoke:lang|lang_xx_italic|code=xx}}</includeonly>
All other parameters should be received from the template's frame (parent frame)
Supported parameters are:
|code = (required) the IANA language code
|script = IANA script code; especially for use with languages that use multiple writing systems
|region = IANA region code
|variant = IANA variant code
|text = (required) the displayed text in language specified by code
|link = boolean false ('no') does not link code-spcified language name to associated language article
|rtl = boolean true ('yes') identifies the language specified by code as a right-to-left language
|nocat = boolean true ('yes') inhibits normal categorization; error categories are not affected
|cat = boolian false ('no') opposite form of |nocat=
|italic = boolean true ('yes') renders displayed text in italic font; boolean false ('no') renders displayed text in normal font; not set renders according to initial_style_state
|lit = text that is a literal translation of text
|label = 'none' to suppress all labeling (language name, 'translit.', 'lit.')
any other text replaces language-name label - automatic wikilinking disabled
for those {{lang-xx}} templates that support transliteration (those templates where |text= is not entirely latn script):
|translit = text that is a transliteration of text
|translit-std = the standard that applies to the transliteration
|translit-script = ISO 15924 script name; falls back to code
For {{lang-xx}}, the positional parameters are:
{{{1}}} text
{{{2}}} transliterated text
{{{3}}} literal translation text
no other positional parameters are allowed
]]
local function _lang_xx (args)
local out = {};
local language_name; -- used to make display text, article links
local category_name; -- same as language_name except that it retains any parenthetical disambiguators (if any) from the data set
local subtags = {}; -- IETF subtags script, region, and variant
local code; -- the language code
local translit_script_name; -- name associated with IANA (ISO 15924) script code
local translit;
local translit_title;
local msg; -- for error messages
local tag = 'span'; -- initial value for make_text_html()
local template = args.template or 'Lang-xx';
if args[1] and args.text then
return make_error_msg ('conflicting: {{{1}}} and |text=', args, template);
else
args.text = args[1] or args.text; -- prefer args.text
end
msg = validate_text (template, args); -- ensure that |text= is set, does not contain italic markup and is protected from improper bolding
if is_set (msg) then
return msg;
end
args.text, tag = html_tag_select (args.text); -- inspects text; returns appropriate html tag with text trimmed accordingly
if args[2] and args.translit then
return make_error_msg ('conflicting: {{{2}}} and |translit=', args, template);
else
args.translit = args[2] or args.translit -- prefer args.translit
end
if args[3] and (args.translation or args.lit) then
return make_error_msg ('conflicting: {{{3}}} and |lit= or |translation=', args, template);
elseif args.translation and args.lit then
return make_error_msg ('conflicting: |lit= and |translation=', args, template);
else
args.translation = args[3] or args.translation or args.lit; -- prefer args.translation
end
if args.links and args.link then
return make_error_msg ('conflicting: |links= and |link=', args, template);
else
args.link = args.link or args.links; -- prefer args.link
end
validate_cat_args (args); -- determine if categorization should be suppressed
args.rtl = args.rtl == 'yes'; -- convert to boolean: 'yes' -> true, other values -> false
code, subtags.script, subtags.region, subtags.variant, subtags.private, msg = get_ietf_parts (args.code, args.script, args.region, args.variant); -- private omitted because private
if msg then -- if an error detected then there is an error message
return make_error_msg (msg, args, template);
end
args.italic, msg = validate_italic (args);
if msg then
return make_error_msg (msg, args, template);
end
if nil == args.italic then -- args.italic controls
if is_set (subtags.script) then
if 'latn' == subtags.script then
args.italic = 'italic'; -- |script=Latn; set for font-style:italic
else
args.italic = initial_style_state; -- italic not set; script is not latn; set for font-style:<initial_style_state>
end
else
args.italic = initial_style_state; -- here when |italic= and |script= not set; set for font-style:<initial_style_state>
end
end
if is_set (subtags.script) then -- if script set override rtl setting
if in_array (subtags.script, lang_data.rtl_scripts) then
args.rtl = true; -- script is an rtl script
else
args.rtl = false; -- script is not an rtl script
end
end
args.proto, msg = validate_proto (args.proto); -- return boolean, or nil, or nil and error message flag
if msg then
return make_error_msg (table.concat ({'invalid |proto=: ', args.proto}), args, template);
end
args.code = format_ietf_tag (code, subtags.script, subtags.region, subtags.variant, subtags.private); -- format to recommended subtag styles
language_name = language_name_get (args.code, code, true); -- get language name; try ietf tag first, then code w/o variant then code w/ variant
category_name = language_name; -- category names retain IANA parenthetical diambiguators (if any)
language_name = language_name:gsub ('%s+%b()', ''); -- remove IANA parenthetical disambiguators or qualifiers from names that have them
if args.label then
if 'none' ~= args.label then
table.insert (out, table.concat ({args.label, ': '})); -- custom label
end
else
if 'no' == args.link then
table.insert (out, language_name); -- language name without wikilink
else
if mw.ustring.find (language_name, 'languages', 1, true) then
table.insert (out, make_wikilink (language_name)); -- collective language name uses simple wikilink
elseif lang_data.article_name[code] then
table.insert (out, make_wikilink (lang_data.article_name[code], language_name)); -- language name with wikilink from override data
else
table.insert (out, make_wikilink (language_name .. ' language', language_name)); -- language name with wikilink
end
end
table.insert (out, ': '); -- separator
end
if 'invert' == args.italic then
args.text = invert_italics (args.text)
end
args.text = proto_prefix (args.text, language_name, args.proto); -- prefix proto-language text with a splat
table.insert (out, make_text_html (args.code, args.text, tag, args.rtl, args.italic, args.size, ('none' == args.label) and language_name or nil))
if is_set (args.translit) and not unicode.is_Latin (args.text) then -- transliteration (not supported in {{lang}}); not supported when args.text is wholly latn text (this is an imperfect test)
table.insert (out, ', '); -- comma to separate text from translit
if 'none' ~= args.label then
table.insert (out, '<small>');
if script_table[args['translit-script']] then -- when |translit-script= is set, try to use the script's name
translit_script_name = script_table[args['translit-script']];
else
translit_script_name = language_name; -- fall back on language name
end
translit_title = mw.title.makeTitle (0, table.concat ({'Romanization of ', translit_script_name})); -- make a title object
if translit_title.exists and ('no' ~= args.link) then
table.insert (out, make_wikilink ('Romanization of ' .. translit_script_name or language_name, 'romanized') .. ':'); -- make a wikilink if there is an article to link to
else
table.insert (out, 'romanized:'); -- else plain text
end
table.insert (out, ' </small>'); -- close the small tag
end
translit = make_translit (args.code, language_name, args.translit, args['translit-std'], args['translit-script'])
if is_set (translit) then
table.insert (out, translit);
else
return make_error_msg (table.concat ({'invalid translit-std: \'', args['translit-std'] or '[missing]'}), args, template);
end
end
if is_set (args.translation) then -- translation (not supported in {{lang}})
table.insert (out, ', ');
if 'none' ~= args.label then
table.insert (out, '<small>');
if 'no' == args.link then
table.insert (out, '<abbr title="literal translation">lit.</abbr>');
else
table.insert (out, make_wikilink ('Literal translation', 'lit.'));
end
table.insert (out, " </small>");
end
table.insert (out, table.concat ({''', args.translation, '''})); -- use html entities to avoid wiki markup confusion
end
table.insert (out, make_category (code, category_name, args.nocat));
table.insert (out, render_maint(args.nocat)); -- maintenance messages and categories
return table.concat (out); -- put it all together and done
end
--[[--------------------------< L A N G _ X X _ A R G S _ G E T >----------------------------------------------
common function to get args table from {{lang-??}} templates
returns table of args
]]
local function lang_xx_args_get (frame)
local args = getArgs(frame,
{
parentFirst= true, -- parameters in the template override parameters set in the {{#invoke:}}
valueFunc = function (key, value)
if 1 == key then -- the 'text' parameter; do not trim wite space
return value; -- return untrimmed 'text'
elseif value then -- all other values: if the value is not nil
value = mw.text.trim (value); -- trim whitespace
if '' ~= value then -- empty string when value was only whitespace
return value;
end
end
return nil; -- value was empty or contained only whitespace
end -- end of valueFunc
});
return args;
end
--[[--------------------------< L A N G _ X X _ I T A L I C >--------------------------------------------------
Entry point for those {{lang-xx}} templates that call lang_xx_italic(). Sets the initial style state to italic.
]]
local function lang_xx_italic (frame)
local args = lang_xx_args_get (frame);
initial_style_state = 'italic';
return _lang_xx (args);
end
--[[--------------------------< _ L A N G _ X X _ I T A L I C >------------------------------------------------
Entry point ffrom another module. Sets the initial style state to italic.
]]
local function _lang_xx_italic (args)
initial_style_state = 'italic';
return _lang_xx (args);
end
--[[--------------------------< L A N G _ X X _ I N H E R I T >------------------------------------------------
Entry point for those {{lang-xx}} templates that call lang_xx_inherit(). Sets the initial style state to inherit.
]]
local function lang_xx_inherit (frame)
local args = lang_xx_args_get (frame);
initial_style_state = 'inherit';
return _lang_xx (args);
end
--[[--------------------------< _ L A N G _ X X _ I N H E R I T >----------------------------------------------
Entry point from another module. Sets the initial style state to inherit.
]]
local function _lang_xx_inherit (args)
initial_style_state = 'inherit';
return _lang_xx (args);
end
--[[--------------------------< _ I S _ I E T F _ T A G >------------------------------------------------------
Returns true when a language name associated with IETF language tag exists; nil else. IETF language tag must be valid.
All code combinations supported by {{lang}} and the {{lang-xx}} templates are supported by this function.
Module entry point from another module
]]
local function _is_ietf_tag (tag) -- entry point when this module is require()d into another
local c, s, r, v, p, err; -- code, script, region, variant, private, error message
c, s, r, v, p, err = get_ietf_parts (tag); -- disassemble tag into constituent part and validate
return ((c and not err) and true) or nil; -- return true when code portion has a value without error message; nil else
end
--[[--------------------------< I S _ I E T F _ T A G >--------------------------------------------------------
Module entry point from an {{#invoke:}}
]]
local function is_ietf_tag (frame)
return _is_ietf_tag (getArgs (frame)[1]); -- args[1] is the ietf language tag to be tested; also get parent frame
end
--[[--------------------------< I S _ I E T F _ T A G _ F R A M E >--------------------------------------------
Module entry point from an {{#invoke:}}; same as is_ietf_tag() except does not get parameters from the parent
(template) frame. This function not useful when called by {{lang|fn=is_ietf_tag_frame|<tag>}} because <tag>
is in the parent frame.
]]
local function is_ietf_tag_frame (frame)
return _is_ietf_tag (getArgs (frame, {frameOnly = true,})[1]); -- args[1] is the ietf language tag to be tested; do not get parent frame
end
--[[--------------------------< _ N A M E _ F R O M _ T A G >--------------------------------------------------
Returns language name associated with IETF language tag if valid; error message else.
All code combinations supported by {{lang}} and the {{lang-xx}} templates are supported by this function.
Set invoke's |link= parameter to yes to get wikilinked version of the language name.
Module entry point from another module
]]
local function _name_from_tag (args)
local subtags = {}; -- IETF subtags script, region, variant, and private
local raw_code = args[1]; -- save a copy of the input IETF subtag
local link = 'yes' == args['link']; -- make a boolean
local label = args.label;
local code; -- the language code
local msg; -- gets an error message if IETF language tag is malformed or invalid
local language_name = '';
code, subtags.script, subtags.region, subtags.variant, subtags.private, msg = get_ietf_parts (raw_code);
if msg then
local template = (args['template'] and table.concat ({'{{', args['template'], '}}: '})) or ''; -- make template name (if provided by the template)
return table.concat ({'<span style=\"color:#d33\">Error: ', template, msg, '</span>'});
end
raw_code = format_ietf_tag (code, subtags.script, subtags.region, subtags.variant, subtags.private); -- format to recommended subtag styles; private omitted because private
language_name = language_name_get (raw_code, code); -- get language name; try ietf tag first, then code w/o variant then code w/ variant
language_name = language_name:gsub ('%s+%b()', ''); -- remove IANA parenthetical disambiguators or qualifiers from names that have them
if link then -- when |link=yes, wikilink the language name
if mw.ustring.find (language_name, 'languages', 1, true) then
language_name = make_wikilink (language_name, label); -- collective language name uses simple wikilink
elseif lang_data.article_name[code] then
language_name = make_wikilink (lang_data.article_name[code], label or language_name); -- language name with wikilink from override data
else
language_name = make_wikilink (language_name .. ' language', label or language_name); -- language name with wikilink
end
end
return language_name;
end
--[[--------------------------< N A M E _ F R O M _ T A G >----------------------------------------------------
Module entry point from an {{#invoke:}}
]]
local function name_from_tag (frame) -- entry point from an {{#invoke:Lang|name_from_tag|<ietf tag>|link=<yes>|template=<template name>}}
return _name_from_tag (getArgs(frame)) -- pass-on the args table, nothing else; getArgs() so we also get parent frame
end
--[[--------------------------< _ T A G _ F R O M _ N A M E >--------------------------------------------------
Returns the ietf language tag associated with the language name. Spelling of language name must be correct
according to the spelling in the source tables. When a standard language name has a parenthetical disambiguator,
that disambiguator must be omitted (they are not present in the data name-to-tag tables).
Module entry point from another module
]]
local function _tag_from_name (args) -- entry point from another module
local msg;
if args[1] and '' ~= args[1] then
local data = mw.loadData ('Module:Lang/tag from name'); -- get the reversed data tables TODO: change when going live
local lang = args[1]:lower(); -- allow any-case for the language name (speeling must till be correct)
local tag = data.rev_override_table[lang] or data.rev_lang_table[lang] or data.rev_lang_dep_table[lang]; -- get the code; look first in the override then in the standard
if tag then
return tag, true; -- language name found so return tag and done; second return used by is_lang_name()
else
msg = 'language: ' .. args[1] .. ' not found' -- language name not found, error message
end
else
msg = 'missing language name' -- language name not provided, error message
end
local template = '';
if args.template and '' ~= args.template then
template = table.concat ({'{{', args['template'], '}}: '}); -- make template name (if provided by the template)
end
return table.concat ({'<span style=\"color:#d33\">Error: ', template, msg, '</span>'});
end
--[[--------------------------< T A G _ F R O M _ N A M E >----------------------------------------------------
Module entry point from an {{#invoke:}}
]]
local function tag_from_name (frame) -- entry point from an {{#invoke:Lang|tag_from_name|<language name>|link=<yes>|template=<template name>}}
local result, _ = _tag_from_name (getArgs(frame)) -- pass-on the args table, nothing else; getArgs() so we also get parent frame; supress second return used by is_lang_name()
return result;
end
--[[--------------------------< I S _ L A N G _ N A M E >------------------------------------------------------
Module entry point from an {{#invoke:}}
]]
local function is_lang_name (frame)
local _, result = _tag_from_name (getArgs(frame)) -- pass-on the args table, nothing else; getArgs() so we also get parent frame; supress second return used by tag_from_name()
return result and true or nil;
end
--[[--------------------------< _ T R A N S L >----------------------------------------------------------------
Module entry point from another module
]]
local function _transl (args)
local title_table = lang_data.translit_title_table; -- table of transliteration standards and the language codes and scripts that apply to those standards
local language_name; -- language name that matches language code; used for tool tip
local translit; -- transliterated text to display
local script; -- IANA script
local msg; -- for when called functions return an error message
if is_set (args[3]) then -- [3] set when {{transl|code|standard|text}}
args.text = args[3]; -- get the transliterated text
args.translit_std = args[2] and args[2]:lower(); -- get the standard; lower case for table indexing
if not title_table[args.translit_std] then
return make_error_msg (table.concat ({'unrecognized transliteration standard: ', args.translit_std}), args, 'Transl');
end
else
if is_set (args[2]) then -- [2] set when {{transl|code|text}}
args.text = args[2]; -- get the transliterated text
else
if args[1] and args[1]:match ('^%a%a%a?%a?$') then -- args[2] missing; is args[1] a code or is it the transliterated text?
return make_error_msg ('no text', args, 'Transl'); -- args[1] is a code so we're missing text
else
args.text = args[1]; -- args[1] is not a code so we're missing that; assign args.text for error message
return make_error_msg ('missing language / script code', args, 'Transl');
end
end
end
if is_set (args[1]) then -- IANA language code used for html lang= attribute; or ISO 15924 script code
if args[1]:match ('^%a%a%a?%a?$') then -- args[1] has correct form?
args.code = args[1]:lower(); -- use the language/script code; only (2, 3, or 4 alpha characters); lower case because table indexes are lower case
else
return make_error_msg (table.concat ({'unrecognized language / script code: ', args[1]}), args, 'Transl'); -- invalid language / script code
end
else
return make_error_msg ('missing language / script code', args, 'Transl'); -- missing language / script code so quit
end
args.italic, msg = validate_italic (args);
if msg then
return make_error_msg (msg, args, 'Transl');
end
if 'italic' == args.italic then -- 'italic' when |italic=yes; because that is same as absent or not set and |italic=default
args.italic = nil; -- set to nil;
end
if override_table[args.code] then -- is code a language code defined in the override table?
language_name = override_table[args.code];
elseif lang_table[args.code] then -- is code a language code defined in the standard language code tables?
language_name = lang_table[args.code];
elseif lang_dep_table[args.code] then -- is code a language code defined in the deprecated language code tables?
language_name = lang_dep_table[args.code];
elseif script_table[args.code] then -- if here, code is not a language code; is it a script code?
language_name = script_table[args.code];
script = args.code; -- code was an ISO 15924 script so use that instead
args.code = ''; -- unset because not a language code
else
return make_error_msg (table.concat ({'unrecognized language / script code: ', args.code}), args, 'Transl'); -- invalid language / script code
end
-- here only when all parameters passed to make_translit() are valid
return make_translit (args.code, language_name, args.text, args.translit_std, script, args.italic);
end
--[[--------------------------< T R A N S L >------------------------------------------------------------------
Module entry point from an {{#invoke:}}
]]
local function transl (frame)
return _transl (getArgs(frame));
end
--[[--------------------------< C A T E G O R Y _ F R O M _ T A G >--------------------------------------------
Returns category name associated with IETF language tag if valid; error message else
All code combinations supported by {{lang}} and the {{lang-xx}} templates are supported by this function.
Module entry point from another module
]]
local function _category_from_tag (args_t)
local subtags = {}; -- IETF subtags script, region, variant, and private
local raw_code = args_t[1]; -- save a copy of the input IETF subtag
local link = 'yes' == args_t.link; -- make a boolean
local label = args_t.label;
local code; -- the language code
local msg; -- gets an error message if IETF language tag is malformed or invalid
local category_name = '';
code, subtags.script, subtags.region, subtags.variant, subtags.private, msg = get_ietf_parts (raw_code);
if msg then
local template = (args_t.template and table.concat ({'{{', args_t.template, '}}: '})) or ''; -- make template name (if provided by the template)
return table.concat ({'<span style=\"color:#d33\">Error: ', template, msg, '</span>'});
end
raw_code = format_ietf_tag (code, subtags.script, subtags.region, subtags.variant, subtags.private); -- format to recommended subtag styles; private omitted because private
category_name = language_name_get (raw_code, code); -- get language name; try ietf tag first, then code w/o variant then code w/ variant
category_name = make_category (code, category_name, nil, true):gsub ('[%[%]]', '');
if link then
return table.concat ({'[[:', category_name, ']]'});
else
return category_name;
end
end
--[[--------------------------< C A T E G O R Y _ F R O M _ T A G >--------------------------------------------
Module entry point from an {{#invoke:}}
]]
local function category_from_tag (frame) -- entry point from an {{#invoke:Lang|category_from_tag|<ietf tag>|template=<template name>}}
return _category_from_tag (getArgs (frame)); -- pass-on the args table, nothing else; getArgs() so we also get parent frame
end
--[[--------------------------< E X P O R T E D F U N C T I O N S >------------------------------------------
]]
return {
category_from_tag = category_from_tag,
lang = lang, -- entry point for {{lang}}
lang_xx_inherit = lang_xx_inherit, -- entry points for {{lang-??}}
lang_xx_italic = lang_xx_italic,
is_ietf_tag = is_ietf_tag,
is_ietf_tag_frame = is_ietf_tag_frame,
is_lang_name = is_lang_name,
tag_from_name = tag_from_name, -- returns ietf tag associated with language name
name_from_tag = name_from_tag, -- used for template documentation; possible use in ISO 639 name from code templates
transl = transl, -- entry point for {{transl}}
_category_from_tag = _category_from_tag, -- entry points when this module is require()d into other modules
_lang = _lang,
_lang_xx_inherit = _lang_xx_inherit,
_lang_xx_italic = _lang_xx_italic,
_is_ietf_tag = _is_ietf_tag,
get_ietf_parts = get_ietf_parts,
_tag_from_name = _tag_from_name,
_name_from_tag = _name_from_tag,
_transl = _transl,
};
c03dbd7d09fd194f4eca087d4ab33846db239885
Module:Unicode data
828
38
75
2024-01-03T21:11:48Z
Laggardson
2
Created page with "local p = {} local floor = math.floor local function errorf(level, ...) if type(level) == "number" then return error(string.format(...), level + 1) else -- level is actually the format string. return error(string.format(level, ...), 2) end end local function binary_range_search(codepoint, ranges) local low, mid, high low, high = 1, ranges.length or require "Module:TableTools".length(ranges) while low <= high do mid = floor((low + high) / 2) local range =..."
Scribunto
text/plain
local p = {}
local floor = math.floor
local function errorf(level, ...)
if type(level) == "number" then
return error(string.format(...), level + 1)
else -- level is actually the format string.
return error(string.format(level, ...), 2)
end
end
local function binary_range_search(codepoint, ranges)
local low, mid, high
low, high = 1, ranges.length or require "Module:TableTools".length(ranges)
while low <= high do
mid = floor((low + high) / 2)
local range = ranges[mid]
if codepoint < range[1] then
high = mid - 1
elseif codepoint <= range[2] then
return range, mid
else
low = mid + 1
end
end
return nil, mid
end
p.binary_range_search = binary_range_search
--[[
local function linear_range_search(codepoint, ranges)
for i, range in ipairs(ranges) do
if range[1] <= codepoint and codepoint <= range[2] then
return range
end
end
end
--]]
-- Load a module by indexing "loader" with the name of the module minus the
-- "Module:Unicode data/" part. For instance, loader.blocks returns
-- [[Module:Unicode data/blocks]]. If a module cannot be loaded, false will be
-- returned.
local loader = setmetatable({}, {
__index = function (self, key)
local success, data = pcall(mw.loadData, "Module:Unicode data/" .. key)
if not success then
data = false
end
self[key] = data
return data
end
})
-- For the algorithm used to generate Hangul Syllable names,
-- see "Hangul Syllable Name Generation" in section 3.12 of the
-- Unicode Specification:
-- https://www.unicode.org/versions/Unicode11.0.0/ch03.pdf
local name_hooks = {
{ 0x00, 0x1F, "<control-%04X>" }, -- C0 control characters
{ 0x7F, 0x9F, "<control-%04X>" }, -- DEL and C1 control characters
{ 0x3400, 0x4DBF, "CJK UNIFIED IDEOGRAPH-%04X" }, -- CJK Ideograph Extension A
{ 0x4E00, 0x9FFF, "CJK UNIFIED IDEOGRAPH-%04X" }, -- CJK Ideograph
{ 0xAC00, 0xD7A3, function (codepoint) -- Hangul Syllables
local Hangul_data = loader.Hangul
local syllable_index = codepoint - 0xAC00
return ("HANGUL SYLLABLE %s%s%s"):format(
Hangul_data.leads[floor(syllable_index / Hangul_data.final_count)],
Hangul_data.vowels[floor((syllable_index % Hangul_data.final_count)
/ Hangul_data.trail_count)],
Hangul_data.trails[syllable_index % Hangul_data.trail_count]
)
end },
-- High Surrogates, High Private Use Surrogates, Low Surrogates
{ 0xD800, 0xDFFF, "<surrogate-%04X>" },
{ 0xE000, 0xF8FF, "<private-use-%04X>" }, -- Private Use
-- CJK Compatibility Ideographs
{ 0xF900, 0xFA6D, "CJK COMPATIBILITY IDEOGRAPH-%04X" },
{ 0xFA70, 0xFAD9, "CJK COMPATIBILITY IDEOGRAPH-%04X" },
{ 0x17000, 0x187F7, "TANGUT IDEOGRAPH-%04X" }, -- Tangut Ideograph
{ 0x18800, 0x18AFF, function (codepoint)
return ("TANGUT COMPONENT-%03d"):format(codepoint - 0x187FF)
end },
{ 0x18D00, 0x18D08, "TANGUT IDEOGRAPH-%04X" }, -- Tangut Ideograph Supplement
{ 0x1B170, 0x1B2FB, "NUSHU CHARACTER-%04X" }, -- Nushu
{ 0x20000, 0x2A6DF, "CJK UNIFIED IDEOGRAPH-%04X" }, -- CJK Ideograph Extension B
{ 0x2A700, 0x2B738, "CJK UNIFIED IDEOGRAPH-%04X" }, -- CJK Ideograph Extension C
{ 0x2B740, 0x2B81D, "CJK UNIFIED IDEOGRAPH-%04X" }, -- CJK Ideograph Extension D
{ 0x2B820, 0x2CEA1, "CJK UNIFIED IDEOGRAPH-%04X" }, -- CJK Ideograph Extension E
{ 0x2CEB0, 0x2EBE0, "CJK UNIFIED IDEOGRAPH-%04X" }, -- CJK Ideograph Extension F
-- CJK Compatibility Ideographs Supplement (Supplementary Ideographic Plane)
{ 0x2F800, 0x2FA1D, "CJK COMPATIBILITY IDEOGRAPH-%04X" },
{ 0xE0100, 0xE01EF, function (codepoint) -- Variation Selectors Supplement
return ("VARIATION SELECTOR-%d"):format(codepoint - 0xE0100 + 17)
end},
{ 0x30000, 0x3134A, "CJK UNIFIED IDEOGRAPH-%04X" }, -- CJK Ideograph Extension G
{ 0xF0000, 0xFFFFD, "<private-use-%04X>" }, -- Plane 15 Private Use
{ 0x100000, 0x10FFFD, "<private-use-%04X>" } -- Plane 16 Private Use
}
name_hooks.length = #name_hooks
local name_range_cache
local function generate_name(data, codepoint)
if type(data) == "string" then
return data:format(codepoint)
else
return data(codepoint)
end
end
--[[
-- Checks that the code point is a number and in range.
-- Does not check whether code point is an integer.
-- Not used
local function check_codepoint(funcName, argIdx, val)
require 'libraryUtil'.checkType(funcName, argIdx, val, 'number')
if codepoint < 0 or 0x10FFFF < codepoint then
errorf("Codepoint %04X out of range", codepoint)
end
end
--]]
-- https://www.unicode.org/versions/Unicode11.0.0/ch04.pdf, section 4.8
function p.lookup_name(codepoint)
-- U+FDD0-U+FDEF and all code points ending in FFFE or FFFF are Unassigned
-- (Cn) and specifically noncharacters:
-- https://www.unicode.org/faq/private_use.html#nonchar4
if 0xFDD0 <= codepoint and (codepoint <= 0xFDEF
or floor(codepoint % 0x10000) >= 0xFFFE) then
return ("<noncharacter-%04X>"):format(codepoint)
end
if name_range_cache -- Check if previously used "name hook" applies to this code point.
and codepoint >= name_range_cache[1]
and codepoint <= name_range_cache[2] then
return generate_name(name_range_cache[3], codepoint)
end
local range = binary_range_search(codepoint, name_hooks)
if range then
name_range_cache = range
return generate_name(range[3], codepoint)
end
local data = loader[('names/%03X'):format(codepoint / 0x1000)]
if data and data[codepoint] then
return data[codepoint]
-- Unassigned (Cn) consists of noncharacters and reserved characters.
-- The character has been established not to be a noncharacter,
-- and if it were assigned, its name would already been retrieved,
-- so it must be reserved.
else
return ("<reserved-%04X>"):format(codepoint)
end
end
--[[
-- No image data modules on Wikipedia yet.
function p.lookup_image(codepoint)
local data = loader[('images/%03X'):format(codepoint / 0x1000)]
if data then
return data[codepoint]
end
end
--]]
local planes = {
[ 0] = "Basic Multilingual Plane";
[ 1] = "Supplementary Multilingual Plane";
[ 2] = "Supplementary Ideographic Plane";
[ 3] = "Tertiary Ideographic Plane";
[14] = "Supplementary Special-purpose Plane";
[15] = "Supplementary Private Use Area-A";
[16] = "Supplementary Private Use Area-B";
}
-- Load [[Module:Unicode data/blocks]] if needed and assign it to this variable.
local blocks
local function block_iter(blocks, i)
i = i + 1
local data = blocks[i]
if data then
-- Unpack doesn't work on tables loaded with mw.loadData.
return i, data[1], data[2], data[3]
end
end
-- An ipairs-type iterator generator for the list of blocks.
function p.enum_blocks()
local blocks = loader.blocks
return block_iter, blocks, 0
end
function p.lookup_plane(codepoint)
local i = floor(codepoint / 0x10000)
return planes[i] or ("Plane %u"):format(i)
end
function p.lookup_block(codepoint)
local blocks = loader.blocks
local range = binary_range_search(codepoint, blocks)
if range then
return range[3]
else
return "No Block"
end
end
function p.get_block_info(name)
for i, block in ipairs(loader.blocks) do
if block[3] == name then
return block
end
end
end
function p.is_valid_pagename(pagename)
local has_nonws = false
for cp in mw.ustring.gcodepoint(pagename) do
if (cp == 0x0023) -- #
or (cp == 0x005B) -- [
or (cp == 0x005D) -- ]
or (cp == 0x007B) -- {
or (cp == 0x007C) -- |
or (cp == 0x007D) -- }
or (cp == 0x180E) -- MONGOLIAN VOWEL SEPARATOR
or ((cp >= 0x2000) and (cp <= 0x200A)) -- spaces in General Punctuation block
or (cp == 0xFFFD) -- REPLACEMENT CHARACTER
then
return false
end
local printable, result = p.is_printable(cp)
if not printable then
return false
end
if result ~= "space-separator" then
has_nonws = true
end
end
return has_nonws
end
local function manual_unpack(what, from)
if what[from + 1] == nil then
return what[from]
end
local result = {}
from = from or 1
for i, item in ipairs(what) do
if i >= from then
table.insert(result, item)
end
end
return unpack(result)
end
local function compare_ranges(range1, range2)
return range1[1] < range2[1]
end
-- Creates a function to look up data in a module that contains "singles" (a
-- code point-to-data map) and "ranges" (an array containing arrays that contain
-- the low and high code points of a range and the data associated with that
-- range).
-- "loader" loads and returns the "singles" and "ranges" tables.
-- "match_func" is passed the code point and either the data or the "dots", and
-- generates the final result of the function.
-- The varargs ("dots") describes the default data to be returned if there wasn't
-- a match.
-- In case the function is used more than once, "cache" saves ranges that have
-- already been found to match, or a range whose data is the default if there
-- was no match.
local function memo_lookup(data_module_subpage, match_func, ...)
local dots = { ... }
local cache = {}
local singles, ranges
return function (codepoint)
if not singles then
local data_module = loader[data_module_subpage]
singles, ranges = data_module.singles, data_module.ranges
end
if singles[codepoint] then
return match_func(codepoint, singles[codepoint])
end
local range = binary_range_search(codepoint, cache)
if range then
return match_func(codepoint, manual_unpack(range, 3))
end
local range, index = binary_range_search(codepoint, ranges)
if range then
table.insert(cache, range)
table.sort(cache, compare_ranges)
return match_func(codepoint, manual_unpack(range, 3))
end
if ranges[index] then
local dots_range
if codepoint > ranges[index][2] then
dots_range = {
ranges[index][2] + 1,
ranges[index + 1] and ranges[index + 1][1] - 1 or 0x10FFFF,
unpack(dots)
}
else -- codepoint < range[index][1]
dots_range = {
ranges[index - 1] and ranges[index - 1][2] + 1 or 0,
ranges[index][1] - 1,
unpack(dots)
}
end
table.sort(cache, compare_ranges)
end
return match_func(codepoint)
end
end
-- Get a code point's combining class value in [[Module:Unicode data/combining]],
-- and return whether this value is not zero. Zero is assigned as the default
-- if the combining class value is not found in this data module.
-- That is, return true if character is combining, or false if it is not.
-- See https://www.unicode.org/reports/tr44/#Canonical_Combining_Class_Values for
-- more information.
p.is_combining = memo_lookup(
"combining",
function (codepoint, combining_class)
return combining_class and combining_class ~= 0 or false
end,
0)
function p.add_dotted_circle(str)
return (mw.ustring.gsub(str, ".",
function(char)
if p.is_combining(mw.ustring.codepoint(char)) then
return '◌' .. char
end
end))
end
local lookup_control = memo_lookup(
"control",
function (codepoint, ccc)
return ccc or "assigned"
end,
"assigned")
p.lookup_control = lookup_control
function p.is_assigned(codepoint)
return lookup_control(codepoint) ~= "unassigned"
end
function p.is_printable(codepoint)
local result = lookup_control(codepoint)
return (result == "assigned") or (result == "space-separator"), result
end
function p.is_whitespace(codepoint)
local result = lookup_control(codepoint)
return (result == "space-separator"), result
end
p.lookup_category = memo_lookup(
"category",
function (codepoint, category)
return category
end,
"Cn")
local lookup_script = memo_lookup(
"scripts",
function (codepoint, script_code)
return script_code or 'Zzzz'
end,
"Zzzz")
p.lookup_script = lookup_script
function p.get_best_script(str)
-- Check type of argument, because mw.text.decode coerces numbers to strings!
require "libraryUtil".checkType("get_best_script", 1, str, "string")
-- Convert HTML character references (including named character references,
-- or character entities) to characters.
str = mw.text.decode(str, true)
local scripts = {}
for codepoint in mw.ustring.gcodepoint(str) do
local script = lookup_script(codepoint)
-- Ignore "Inherited", "Undetermined", or "Uncoded" scripts.
if not (script == "Zyyy" or script == "Zinh" or script == "Zzzz") then
scripts[script] = true
end
end
-- If scripts does not contain two or more keys,
-- return first and only key (script code) in table.
if not next(scripts, next(scripts)) then
return next(scripts)
end -- else return majority script, or else "Zzzz"?
end
function p.is_Latin(str)
require "libraryUtil".checkType("get_best_script", 1, str, "string")
str = mw.text.decode(str, true)
-- Search for the leading bytes that introduce the UTF-8 encoding of the
-- code points U+0340-U+10FFFF. If they are not found and there is at least
-- one Latin-script character, the string counts as Latin, because the rest
-- of the characters can only be Zyyy, Zinh, and Zzzz.
-- The only scripts found below U+0370 (the first code point of the Greek
-- and Coptic block) are Latn, Zyyy, Zinh, and Zzzz.
-- See the codepage in the [[UTF-8]] article.
if not str:find "[\205-\244]" then
for codepoint in mw.ustring.gcodepoint(str) do
if lookup_script(codepoint) == "Latn" then
return true
end
end
end
local Latn = false
for codepoint in mw.ustring.gcodepoint(str) do
local script = lookup_script(codepoint)
if script == "Latn" then
Latn = true
elseif not (script == "Zyyy" or script == "Zinh"
or script == "Zzzz") then
return false
end
end
return Latn
end
-- Checks that a string contains only characters belonging to right-to-left
-- scripts, or characters of ignorable scripts.
function p.is_rtl(str)
require "libraryUtil".checkType("get_best_script", 1, str, "string")
str = mw.text.decode(str, true)
-- Search for the leading bytes that introduce the UTF-8 encoding of the
-- code points U+0580-U+10FFFF. If they are not found, the string can only
-- have characters from a left-to-right script, because the first code point
-- in a right-to-left script is U+0591, in the Hebrew block.
if not str:find "[\214-\244]" then
return false
end
local result = false
local rtl = loader.scripts.rtl
for codepoint in mw.ustring.gcodepoint(str) do
local script = lookup_script(codepoint)
if rtl[script] then
result = true
elseif not (script == "Zyyy" or script == "Zinh"
or script == "Zzzz") then
return false
end
end
return result
end
local function get_codepoint(args, arg)
local codepoint_string = args[arg]
or errorf(2, "Parameter %s is required", tostring(arg))
local codepoint = tonumber(codepoint_string, 16)
or errorf(2, "Parameter %s is not a code point in hexadecimal base",
tostring(arg))
if not (0 <= codepoint and codepoint <= 0x10FFFF) then
errorf(2, "code point in parameter %s out of range", tostring(arg))
end
return codepoint
end
local function get_func(args, arg, prefix)
local suffix = args[arg]
or errorf(2, "Parameter %s is required", tostring(arg))
suffix = mw.text.trim(suffix)
local func_name = prefix .. suffix
local func = p[func_name]
or errorf(2, "There is no function '%s'", func_name)
return func
end
-- This function allows any of the "lookup" functions to be invoked. The first
-- parameter is the word after "lookup_"; the second parameter is the code point
-- in hexadecimal base.
function p.lookup(frame)
local func = get_func(frame.args, 1, "lookup_")
local codepoint = get_codepoint(frame.args, 2)
local result = func(codepoint)
if func == p.lookup_name then
-- Prevent code point labels such as <control-0000> from being
-- interpreted as HTML tags.
result = result:gsub("<", "<")
end
return result
end
function p.is(frame)
local func = get_func(frame.args, 1, "is_")
-- is_Latin and is_valid_pagename take strings.
if func == p.is_Latin or func == p.is_valid_pagename or func == p.is_rtl then
return (func(frame.args[2]))
else -- The rest take code points.
local codepoint = get_codepoint(frame.args, 2)
return (func(codepoint)) -- Adjust to one result.
end
end
return p
d5120752211e56587ed888b32d5a752a82836cc0
Module:Yesno
828
39
76
2024-01-03T21:13:36Z
Laggardson
2
Created page with "-- <nowiki> --- Yesno module for processing of boolean-like wikitext input. -- -- It works similarly to the [[wikipedia:Template:Yesno|Yesno Wikipedia -- template]]. This module is a consistent Lua interface for wikitext -- input from templates. -- -- Wikitext markup used by MediaWiki templates only permit -- string parameters like `"0"`, `"yes"`, `"no"` etc. As Lua -- has a boolean primitive type, Yesno converts this -- wikitext into boolean output for Lua t..."
Scribunto
text/plain
-- <nowiki>
--- Yesno module for processing of boolean-like wikitext input.
--
-- It works similarly to the [[wikipedia:Template:Yesno|Yesno Wikipedia
-- template]]. This module is a consistent Lua interface for wikitext
-- input from templates.
--
-- Wikitext markup used by MediaWiki templates only permit
-- string parameters like `"0"`, `"yes"`, `"no"` etc. As Lua
-- has a boolean primitive type, Yesno converts this
-- wikitext into boolean output for Lua to process.
--
-- @script yesno
-- @release stable
-- @author [[User:Dessamator|Dessamator]]
-- @attribution [[wikipedia:User:ATDT|ATDT]]
-- @attribution [[wikipedia:User:Mr. Stradivarius|Mr. Stradivarius]]
-- @attribution [[wikipedia:Special:PageHistory/Module:Yesno|Other Wikipedia contributors]]
-- @see [[wikipedia:Module:Yesno|Original module on
-- Wikipedia]]
-- @see [[Module:Yesno/testcases|Test cases for this
-- module]]
-- @param {?boolean|string} value Wikitext boolean-style
-- or Lua boolean input.
-- * Truthy wikitext input (`'yes'`, `'y'`, `'1'`,
-- `'t'` or `'on'`) produces `true` as output.
-- * The string representations of Lua's true
-- boolean value (`'true'`) also produces `true`.
-- * Falsy wikitext input (`'no'`, `'n'`, `'0'`,
-- `'f'` or `'off'`) produces `false` as output.
-- * The string representation of Lua's false
-- boolean value (`'false'`) also produces `false`.
-- * Localised text meaning `'yes'` or `'no'` also
-- evaluate to `true` or `false` respectively.
-- @param[opt] {?boolean|string} default Output to return if
-- the Yesno `value` input is unrecognised.
-- @return {?boolean} Boolean output corresponding to
-- `val`:
-- * The strings documented above produce a
-- boolean value.
-- * A `nil` value produces an output of `nil`.
-- As this is falsy, additional logic may be needed
-- to treat missing template parameters as truthy.
-- * Unrecognised values return the `default`
-- parameter. Blank strings are a key example
-- of Yesno's unrecognised values and can evaluate
-- to `true` if there is a default value.
local lower = mw.ustring.lower
local msg = mw.message.new
local yes = lower(msg('htmlform-yes'):plain())
local no = lower(msg('htmlform-no'):plain())
local en_yes = lower(msg('htmlform-yes'):inLanguage('en'):plain())
local en_no = lower(msg('htmlform-no'):inLanguage('en'):plain())
return function(value, default)
value = type(value) == 'string' and lower(value) or value
if value == nil then
return nil
elseif value == true
or value == yes
or value == en_yes
or value == 'y'
or value == 'true'
or value == 't'
or value == 'on'
or value == 'enable'
or tonumber(value) == 1
then
return true
elseif value == false
or value == no
or value == en_no
or value == 'n'
or value == 'false'
or value == 'f'
or value == 'off'
or value == 'disable'
or tonumber(value) == 0
then
return false
else
return default
end
end
-- </nowiki>
e342cfbb2046573b83245c0a26dde4b62f8b783c
Module:Lang/data
828
40
77
2024-01-03T21:16:06Z
Laggardson
2
Created page with "local lang_obj = mw.language.getContentLanguage(); local this_wiki_lang_tag = lang_obj.code; -- get this wiki's language tag --[[--------------------------< L A N G _ N A M E _ T A B L E >------------------------------------------------ primary table of tables that decode: lang -> language tags and names script -> ISO 15924 script tags region -> ISO 3166 region tags variant -> iana registered variant tags suppressed -> map of scripts tags and their assoc..."
Scribunto
text/plain
local lang_obj = mw.language.getContentLanguage();
local this_wiki_lang_tag = lang_obj.code; -- get this wiki's language tag
--[[--------------------------< L A N G _ N A M E _ T A B L E >------------------------------------------------
primary table of tables that decode:
lang -> language tags and names
script -> ISO 15924 script tags
region -> ISO 3166 region tags
variant -> iana registered variant tags
suppressed -> map of scripts tags and their associated language tags
all of these data come from separate modules that are derived from the IANA language-subtag-registry file
key_to_lower() avoids the metatable trap and sets all keys in the subtables to lowercase. Many language codes
have multiple associated names; Module:lang is only concerned with the first name so key_to_lower() only fetches
the first name.
]]
local function key_to_lower (module, src_type)
local out = {};
local source = (('var_sup' == src_type) and require (module)) or mw.loadData (module); -- fetch data from this module; require() avoids metatable trap for variant data
if 'var_sup' == src_type then
for k, v in pairs (source) do
out[k:lower()] = v; -- for variant and suppressed everything is needed
end
elseif 'lang' == src_type and source.active then -- for ~/iana_languages (active)
for k, v in pairs (source.active) do
out[k:lower()] = v[1]; -- ignore multiple names; take first name only
end
elseif 'lang_dep' == src_type and source.deprecated then -- for ~/iana_languages (deprecated)
for k, v in pairs (source.deprecated) do
out[k:lower()] = v[1]; -- ignore multiple names; take first name only
end
else -- here for all other sources
for k, v in pairs (source) do
out[k:lower()] = v[1]; -- ignore multiple names; take first name only
end
end
return out;
end
local lang_name_table_t = {
lang = key_to_lower ('Module:Language/data/iana languages', 'lang'),
lang_dep = key_to_lower ('Module:Language/data/iana languages', 'lang_dep'),
script = key_to_lower ('Module:Language/data/iana scripts'), -- script keys are capitalized; set to lower
region = key_to_lower ('Module:Language/data/iana regions'), -- region keys are uppercase; set to lower
variant = key_to_lower ('Module:Language/data/iana variants', 'var_sup'),
suppressed = key_to_lower ('Module:Language/data/iana suppressed scripts', 'var_sup'), -- script keys are capitalized; set to lower
}
--[[--------------------------< I 1 8 N M E D I A W I K I O V E R R I D E >--------------------------------
For internationalization; not used at en.wiki
The language names taken from the IANA language-subtag-registry file are given in English. That may not be ideal.
Translating ~8,000 language names is also not ideal. MediaWiki maintains (much) shorter lists of language names
in most languages for which there is a Wikipedia edition. When desired, Module:Lang can use the MediaWiki
language list for the local language.
Caveat lector: the list of MediaWiki language names for your language may not be complete or may not exist at all.
When incomplete, MediaWiki's list will 'fall back' to another language (typically English). When that happens
add an appropriate entry to the override table below.
Caveat lector: the list of MediaWiki language names for your language may not be correct. At en.wiki, the
MediaWiki language names do not agree with the IANA language names for these ISO 639-1 tags. Often it is simply
spelling differences:
bh: IANA: Bihari languages MW: Bhojpuri – the ISO 639-3 tag for Bhojpuri is bho
bn: IANA: Bengali MW: Bangla – Bengali is the exonym, Bangla is the endonym
dv: IANA: Dhivehi MW: Divehi
el: IANA: Modern Greek MW: Greek
ht: IANA: Haitian MW: Haitian Creole
ky: IANA: Kirghiz MW: Kyrgyz
li: IANA: Limburgan MW: Limburgish
or: IANA: Oriya MW: Odia
os: IANA: Ossetian MW: Ossetic
"pa: IANA: Panjabi MW: Punjabi
"ps: IANA: Pushto MW: Pashto
"to: IANA: Tonga MW: Tongan
"ug: IANA: Uighur MW: Uyghur
use the override table to override language names that are incorrect for your project
To see the list of names that MediaWiki has for your language, enter this in the Debug colsole:
=mw.dumpObject (mw.language.fetchLanguageNames ('<tag>', 'all'))
(replacing <tag> with the language tag for your language)
Use of the MediaWiki language names lists is enabled when media_wiki_override_enable is set to boolean true.
]]
local media_wiki_override_enable = false; -- set to true to override IANA names with MediaWiki names; always false at en.wiki
-- caveat lector: the list of MediaWiki language names for your language may not be complete or may not exist at all
if true == media_wiki_override_enable then
local mw_languages_by_tag_t = mw.language.fetchLanguageNames (this_wiki_lang_tag, 'all'); -- get a table of language tag/name pairs known to MediaWiki
for tag, name in pairs (mw_languages_by_tag_t) do -- loop through each tag/name pair in the MediaWiki list
if lang_name_table_t.lang[tag] then -- if the tag is in the main list
lang_name_table_t.lang[tag] = name; -- overwrite exisiting name with the name from MediaWiki
end
end
end
--[[--------------------------< O V E R R I D E >--------------------------------------------------------------
Language codes and names in this table override the BCP47 names in lang_name_table.
indexes in this table shall always be lower case
]]
local override = {
------------------------------< I S O _ 6 3 9 - 1 >------------------------------------------------------------
["ca-valencia"] = "Valencian",
["cu"] = "Church Slavonic", -- 2nd IANA name;
["de-at"] = "Austrian German", -- these code-region and code-variant tags to match en.wiki article names
["de-ch"] = "Swiss Standard German",
["en-au"] = "Australian English",
["en-ca"] = "Canadian English",
["en-emodeng"] = "Early Modern English",
["en-gb"] = "British English",
["en-ie"] = "Irish English",
["en-in"] = "Indian English",
["en-nz"] = "New Zealand English",
["en-us"] = "American English",
["en-za"] = "South African English",
["fy"] = "West Frisian", -- Western Frisian
["mo"] = "Moldovan", -- Moldavian (deprecated code); to match en.wiki article title
["nl-be"] = "Flemish", -- match MediaWiki
["oc-provenc"] = "Provençal",
["ps"] = "Pashto", -- Pushto
["pt-br"] = "Brazilian Portuguese", -- match MediaWiki
["tw-asante"] = "Asante Twi",
-- these ISO 639-1 language-name overrides imported from Module:Language/data/wp_languages
--<begin do-not-edit except to comment out>--
["av"] = "Avar", -- Avaric
["bo"] = "Standard Tibetan", -- Tibetan
["el"] = "Greek", -- Modern Greek
-- ["en-SA"] = "South African English", -- English; no; SA is not South Africa it Saudi Arabia; ZA is South Africa
["ff"] = "Fula", -- Fulah
["ht"] = "Haitian Creole", -- Haitian
["hz"] = "Otjiherero", -- Herero
["ii"] = "Yi", -- Sichuan Yi
["ki"] = "Gikuyu", -- Kikuyu
["kl"] = "Greenlandic", -- Kalaallisut
["ky"] = "Kyrgyz", -- Kirghiz
["lg"] = "Luganda", -- Ganda
["li"] = "Limburgish", -- Limburgan
["mi"] = "Māori", -- Maori
["na"] = "Nauruan", -- Nauru
["nb"] = "Bokmål", -- Norwegian Bokmål
["nd"] = "Northern Ndebele", -- North Ndebele
["nn"] = "Nynorsk", -- Norwegian Nynorsk
["nr"] = "Southern Ndebele", -- South Ndebele
["ny"] = "Chichewa", -- Nyanja
["oj"] = "Ojibwe", -- Ojibwa
["or"] = "Odia", -- Oriya
["pa"] = "Punjabi", -- Panjabi
["rn"] = "Kirundi", -- Rundi
["sl"] = "Slovene", -- Slovenian
["ss"] = "Swazi", -- Swati
["st"] = "Sotho", -- Southern Sotho
["to"] = "Tongan", -- Tonga
--<end do-not-edit except to comment out>--
------------------------------< I S O _ 6 3 9 - 2, - 3, - 5 >----------------------------------------------
["alv"] = "Atlantic–Congo languages", -- to match en.wiki article title (endash)
["arc"] = "Aramaic", -- Official Aramaic (700-300 BCE), Imperial Aramaic (700-300 BCE);
["art"] = "constructed", -- to match en.wiki article; lowercase for category name
["bhd"] = "Bhadarwahi", -- Bhadrawahi; to match en.wiki article title
["bla"] = "Blackfoot", -- Siksika; to match en.wiki article title
["bua"] = "Buryat", -- Buriat; this is a macro language; these four use wp preferred transliteration;
["bxm"] = "Mongolian Buryat", -- Mongolia Buriat; these three all redirect to Buryat
["bxr"] = "Russian Buryat", -- Russia Buriat;
["bxu"] = "Chinese Buryat", -- China Buriat;
["byr"] = "Yipma", -- Baruya, Yipma
["egy"] = "Ancient Egyptian", -- Egyptian (Ancient); distinguish from contemporary arz: Egyptian Arabic
["ems"] = "Alutiiq", -- Pacific Gulf Yupik; to match en.wiki article title
["esx"] = "Eskimo–Aleut languages", -- to match en.wiki article title (endash)
["frr"] = "North Frisian", -- Northern Frisian
["frs"] = "East Frisian Low Saxon", -- Eastern Frisian
["gsw-fr"] = "Alsatian", -- match MediaWiki
["haa"] = "Hän", -- Han; to match en.wiki article title
["hmx"] = "Hmong–Mien languages", -- to match en.wiki article title (endash)
["ilo"] = "Ilocano", -- Iloko; to match en.wiki article title
["jam"] = "Jamaican Patois", -- Jamaican Creole English
["luo"] = "Dholuo", -- IANA (primary) /ISO 639-3: Luo (Kenya and Tanzania); IANA (secondary): Dholuo
["mhr"] = "Meadow Mari", -- Eastern Mari
["mid"] = "Modern Mandaic", -- Mandaic
['mis'] = "uncoded", -- Uncoded languages; capitalization; special scope, not collective scope;
["mkh"] = "Mon–Khmer languages", -- to match en.wiki article title (endash)
["mla"] = "Tamambo", -- Malo
['mte'] = "Mono-Alu", -- Mono (Solomon Islands)
['mul'] = "multiple", -- Multiple languages; capitalization; special scope, not collective scope;
["nan-tw"] = "Taiwanese Hokkien", -- make room for IANA / 639-3 nan Min Nan Chinese; match en.wiki article title
["new"] = "Newar", -- Newari, Nepal Bhasa; to match en,wiki article title
["ngf"] = "Trans–New Guinea languages", -- to match en.wiki article title (endash)
["nic"] = "Niger–Congo languages", -- Niger-Kordofanian languages; to match en,wiki article title
["nrf"] = "Norman", -- not quite a collective - IANA name: Jèrriais + Guernésiais; categorizes to Norman-language text
["nrf-gg"] = "Guernésiais", -- match MediaWiki
["nrf-je"] = "Jèrriais", -- match MediaWiki
["nzi"] = "Nzema", -- Nzima; to match en.wiki article title
["oma"] = "Omaha–Ponca", -- to match en.wiki article title (endash)
["orv"] = "Old East Slavic", -- Old Russian
["pfl"] = "Palatine German", -- Pfaelzisch; to match en.wiki article
["pie"] = "Piro Pueblo", -- Piro; to match en.wiki article
["pms"] = "Piedmontese", -- Piemontese; to match en.wiki article title
["pnb"] = "Punjabi (Western)", -- Western Panjabi; dab added to override import from ~/wp languages and distinguish pnb from pa in reverse look up tag_from_name()
["rop"] = "Australian Kriol", -- Kriol; en.wiki article is a dab; point to correct en.wiki article
["sdo"] = "Bukar–Sadong", -- Bukar-Sadung Bidayuh; to match en.wiki article title
["stq"] = "Saterland Frisian", -- Saterfriesisch
["und"] = "undetermined", -- capitalization to match existing category
["wrg"] = "Warrongo", -- Warungu
["xal-ru"] = "Kalmyk", -- to match en.wiki article title
["xgf"] = "Tongva", -- ISO 639-3 is Gabrielino-Fernandeño
["yuf"] = "Havasupai–Hualapai", -- Havasupai-Walapai-Yavapai; to match en.wiki article title
["zxx"] = "no linguistic content", -- capitalization
-- these ISO 639-2, -3 language-name overrides imported from Module:Language/data/wp_languages
--<begin do-not-edit except to comment out>--
["ace"] = "Acehnese", -- Achinese
["aec"] = "Sa'idi Arabic", -- Saidi Arabic
["akl"] = "Aklan", -- Aklanon
["alt"] = "Altay", -- Southern Altai
["apm"] = "Mescalero-Chiricahua", -- Mescalero-Chiricahua Apache
["bal"] = "Balochi", -- Baluchi
-- ["bcl"] = "Central Bicolano", -- Central Bikol
["bin"] = "Edo", -- Bini
["bpy"] = "Bishnupriya Manipuri", -- Bishnupriya
["chg"] = "Chagatay", -- Chagatai
["ckb"] = "Sorani Kurdish", -- Central Kurdish
["cnu"] = "Shenwa", -- Chenoua
["coc"] = "Cocopah", -- Cocopa
["diq"] = "Zazaki", -- Dimli
["fit"] = "Meänkieli", -- Tornedalen Finnish
["fkv"] = "Kven", -- Kven Finnish
["frk"] = "Old Frankish", -- Frankish
["gez"] = "Ge'ez", -- Geez
["gju"] = "Gujari", -- Gujari
["gsw"] = "Alemannic German", -- Swiss German
["gul"] = "Gullah", -- Sea Island Creole English
["hak"] = "Hakka", -- Hakka Chinese
["hbo"] = "Biblical Hebrew", -- Ancient Hebrew
["hnd"] = "Hindko", -- Southern Hindko
-- ["ikt"] = "Inuvialuk", -- Inuinnaqtun
["kaa"] = "Karakalpak", -- Kara-Kalpak
["khb"] = "Tai Lü", -- Lü
["kmr"] = "Kurmanji Kurdish", -- Northern Kurdish
["kpo"] = "Kposo", -- Ikposo
["krj"] = "Kinaray-a", -- Kinaray-A
["ktz"] = "Juǀ'hoan", -- Juǀʼhoan
["lez"] = "Lezgian", -- Lezghian
["liv"] = "Livonian", -- Liv
["lng"] = "Lombardic", -- Langobardic
["mia"] = "Miami-Illinois", -- Miami
["miq"] = "Miskito", -- Mískito
["mix"] = "Mixtec", -- Mixtepec Mixtec
["mni"] = "Meitei", -- Manipuri
["mrj"] = "Hill Mari", -- Western Mari
["mww"] = "White Hmong", -- Hmong Daw
["nds-nl"] = "Dutch Low Saxon", -- Low German
-- ["new"] = "Nepal Bhasa", -- Newari
["nso"] = "Northern Sotho", -- Pedi
-- ["nwc"] = "Classical Nepal Bhasa", -- Classical Newari, Classical Nepal Bhasa, Old Newari
["ood"] = "O'odham", -- Tohono O'odham
["otk"] = "Old Turkic", -- Old Turkish
["pal"] = "Middle Persian", -- Pahlavi
["pam"] = "Kapampangan", -- Pampanga
["phr"] = "Potwari", -- Pahari-Potwari
["pka"] = "Jain Prakrit", -- Ardhamāgadhī Prākrit
-- ["pnb"] = "Punjabi", -- Western Panjabi
["psu"] = "Shauraseni", -- Sauraseni Prākrit
["rap"] = "Rapa Nui", -- Rapanui
["rar"] = "Cook Islands Māori", -- Rarotongan
["rmu"] = "Scandoromani", -- Tavringer Romani
["rom"] = "Romani", -- Romany
["rup"] = "Aromanian", -- Macedo-Romanian
["ryu"] = "Okinawan", -- Central Okinawan
["sdc"] = "Sassarese", -- Sassarese Sardinian
["sdn"] = "Gallurese", -- Gallurese Sardinian
["shp"] = "Shipibo", -- Shipibo-Conibo
["src"] = "Logudorese", -- Logudorese Sardinian
["sro"] = "Campidanese", -- Campidanese Sardinian
["tkl"] = "Tokelauan", -- Tokelau
["tvl"] = "Tuvaluan", -- Tuvalu
["tyv"] = "Tuvan", -- Tuvinian
["vls"] = "West Flemish", -- Vlaams
["wep"] = "Westphalian", -- Westphalien
["xal"] = "Oirat", -- Kalmyk
["xcl"] = "Old Armenian", -- Classical Armenian
["yua"] = "Yucatec Maya", -- Yucateco
--<end do-not-edit except to comment out>--
------------------------------< P R I V A T E _ U S E _ T A G S >----------------------------------------------
["alg-x-proto"] = "Proto-Algonquian", -- alg in IANA is Algonquian languages
["cel-x-proto"] = "Proto-Celtic", -- cel in IANA is Celtic languages
["gem-x-proto"] = "Proto-Germanic", -- gem in IANA is Germanic languages
["gmw-x-ecg"] = "East Central German",
["grc-x-aeolic"] = "Aeolic Greek", -- these grc-x-... codes are preferred alternates to the non-standard catchall code grc-gre
["grc-x-attic"] = "Attic Greek",
["grc-x-biblical"] = "Biblical Greek",
["grc-x-byzant"] = "Byzantine Greek",
["grc-x-classic"] = "Classical Greek",
["grc-x-doric"] = "Doric Greek",
["grc-x-hellen"] = "Hellenistic Greek",
["grc-x-ionic"] = "Ionic Greek",
["grc-x-koine"] = "Koinē Greek",
["grc-x-medieval"] = "Medieval Greek",
["grc-x-patris"] = "Patristic Greek",
["grk-x-proto"] = "Proto-Greek", -- grk in IANA is Greek languages
["iir-x-proto"] = "Proto-Indo-Iranian", -- iir in IANA is Indo-Iranian Languages
["ine-x-proto"] = "Proto-Indo-European",
["ira-x-proto"] = "Proto-Iranian", -- ira in IANA is Iranian languages
["itc-x-proto"] = "Proto-Italic", -- itc in IANA is Italic languages
["ksh-x-colog"] = "Colognian", -- en.wiki article is Colognian; ksh (Kölsch) redirects there
["la-x-medieval"] = "Medieval Latin",
["mis-x-ripuar"] = "Ripuarian", -- replaces improper use of ksh in wp_languages
["sem-x-proto"] = "Proto-Semitic",
["sla-x-proto"] = "Proto-Slavic", -- sla in IANA is Slavic languages
["yuf-x-hav"] = "Havasupai", -- IANA name for these three is Havasupai-Walapai-Yavapai
["yuf-x-wal"] = "Walapai",
["yuf-x-yav"] = "Yavapai",
}
--[[--------------------------< A R T I C L E _ L I N K >------------------------------------------------------
for those rare occasions when article titles don't fit with the normal '<language name>-language', this table
maps language code to article title. Use of this table should be avoided and the use of redirects preferred as
that is the long-standing method of handling article names that don't fit with the normal pattern
]]
local article_name = {
["lij"] = "Ligurian (Romance language)", -- Ligurian; see Template_talk:Lang#Ligurian_dab
['mnh'] = "Mono language (Congo)", -- Mono (Democratic Republic of Congo); see Template_talk:Lang#Mono_languages
['mnr'] = "Mono language (California)", -- Mono (USA)
['mru'] = "Mono language (Cameroon)", -- Mono (Cameroon)
["xlg"] = "Ligurian (ancient language)", -- see Template_talk:Lang#Ligurian_dab
}
--[=[-------------------------< R T L _ S C R I P T S >--------------------------------------------------------
ISO 15924 scripts that are written right-to-left. Data in this table taken from [[ISO 15924#List of codes]]
last update to this list: 2017-12-24
]=]
local rtl_scripts = {
'adlm', 'arab', 'aran', 'armi', 'avst', 'cprt', 'egyd', 'egyh', 'hatr', 'hebr',
'hung', 'inds', 'khar', 'lydi', 'mand', 'mani', 'mend', 'merc', 'mero', 'narb',
'nbat', 'nkoo', 'orkh', 'palm', 'phli', 'phlp', 'phlv', 'phnx', 'prti', 'rohg',
'samr', 'sarb', 'sogd', 'sogo', 'syrc', 'syre', 'syrj', 'syrn', 'thaa', 'wole',
};
--[[--------------------------< T R A N S L I T _ T I T L E S >------------------------------------------------
This is a table of tables of transliteration standards and the language codes or language scripts that apply to
those standards. This table is used to create the tool-tip text associated with the transliterated text displayed
by some of the {{lang-??}} templates.
These tables are more-or-less copied directly from {{transl}}. The standard 'NO_STD' is a construct to allow for
the cases when no |std= parameter value is provided.
]]
local translit_title_table = {
['ahl'] = {
['default'] = 'Academy of the Hebrew Language transliteration',
},
['ala'] = {
['default'] = 'American Library Association – Library of Congress transliteration',
},
['ala-lc'] = {
['default'] = 'American Library Association – Library of Congress transliteration',
},
['batr'] = {
['default'] = 'Bikdash Arabic Transliteration Rules',
},
['bgn/pcgn'] = {
['default'] = 'Board on Geographic Names / Permanent Committee on Geographical Names transliteration',
},
['din'] = {
['ar'] = 'DIN 31635 Arabic',
['fa'] = 'DIN 31635 Arabic',
['ku'] = 'DIN 31635 Arabic',
['ps'] = 'DIN 31635 Arabic',
['tg'] = 'DIN 31635 Arabic',
['ug'] = 'DIN 31635 Arabic',
['ur'] = 'DIN 31635 Arabic',
['arab'] = 'DIN 31635 Arabic',
['default'] = 'DIN transliteration',
},
['eae'] = {
['default'] = 'Encyclopaedia Aethiopica transliteration',
},
['hepburn'] = {
['default'] = 'Hepburn transliteration',
},
['hunterian'] = {
['default'] = 'Hunterian transliteration',
},
['iast'] = {
['default'] = 'International Alphabet of Sanskrit transliteration',
},
['iso'] = { -- when a transliteration standard is supplied
['ab'] = 'ISO 9 Cyrillic',
['ba'] = 'ISO 9 Cyrillic',
['be'] = 'ISO 9 Cyrillic',
['bg'] = 'ISO 9 Cyrillic',
['kk'] = 'ISO 9 Cyrillic',
['ky'] = 'ISO 9 Cyrillic',
['mn'] = 'ISO 9 Cyrillic',
['ru'] = 'ISO 9 Cyrillic',
['tg'] = 'ISO 9 Cyrillic',
['uk'] = 'ISO 9 Cyrillic',
['bua'] = 'ISO 9 Cyrillic',
['sah'] = 'ISO 9 Cyrillic',
['tut'] = 'ISO 9 Cyrillic',
['xal'] = 'ISO 9 Cyrillic',
['cyrl'] = 'ISO 9 Cyrillic',
['ar'] = 'ISO 233 Arabic',
['ku'] = 'ISO 233 Arabic',
['ps'] = 'ISO 233 Arabic',
['ug'] = 'ISO 233 Arabic',
['ur'] = 'ISO 233 Arabic',
['arab'] = 'ISO 233 Arabic',
['he'] = 'ISO 259 Hebrew',
['yi'] = 'ISO 259 Hebrew',
['hebr'] = 'ISO 259 Hebrew',
['el'] = 'ISO 843 Greek',
['grc'] = 'ISO 843 Greek',
['ja'] = 'ISO 3602 Japanese',
['hira'] = 'ISO 3602 Japanese',
['hrkt'] = 'ISO 3602 Japanese',
['jpan'] = 'ISO 3602 Japanese',
['kana'] = 'ISO 3602 Japanese',
['zh'] = 'ISO 7098 Chinese',
['chi'] = 'ISO 7098 Chinese',
['pny'] = 'ISO 7098 Chinese',
['zho'] = 'ISO 7098 Chinese',
-- ['han'] = 'ISO 7098 Chinese', -- unicode alias of Hani? doesn't belong here? should be Hani?
['hans'] = 'ISO 7098 Chinese',
['hant'] = 'ISO 7098 Chinese',
['ka'] = 'ISO 9984 Georgian',
['kat'] = 'ISO 9984 Georgian',
['arm'] = 'ISO 9985 Armenian',
['hy'] = 'ISO 9985 Armenian',
['th'] = 'ISO 11940 Thai',
['tha'] = 'ISO 11940 Thai',
['ko'] = 'ISO 11941 Korean',
['kor'] = 'ISO 11941 Korean',
['awa'] = 'ISO 15919 Indic',
['bho'] = 'ISO 15919 Indic',
['bn'] = 'ISO 15919 Indic',
['bra'] = 'ISO 15919 Indic',
['doi'] = 'ISO 15919 Indic',
['dra'] = 'ISO 15919 Indic',
['gon'] = 'ISO 15919 Indic',
['gu'] = 'ISO 15919 Indic',
['hi'] = 'ISO 15919 Indic',
['inc'] = 'ISO 15919 Indic',
['kn'] = 'ISO 15919 Indic',
['kok'] = 'ISO 15919 Indic',
['ks'] = 'ISO 15919 Indic',
['mag'] = 'ISO 15919 Indic',
['mai'] = 'ISO 15919 Indic',
['ml'] = 'ISO 15919 Indic',
['mr'] = 'ISO 15919 Indic',
['ne'] = 'ISO 15919 Indic',
['new'] = 'ISO 15919 Indic',
['or'] = 'ISO 15919 Indic',
['pa'] = 'ISO 15919 Indic',
['raj'] = 'ISO 15919 Indic',
['sa'] = 'ISO 15919 Indic',
['sat'] = 'ISO 15919 Indic',
['sd'] = 'ISO 15919 Indic',
['si'] = 'ISO 15919 Indic',
['ta'] = 'ISO 15919 Indic',
['tcy'] = 'ISO 15919 Indic',
['te'] = 'ISO 15919 Indic',
['beng'] = 'ISO 15919 Indic',
['brah'] = 'ISO 15919 Indic',
['deva'] = 'ISO 15919 Indic',
['gujr'] = 'ISO 15919 Indic',
['guru'] = 'ISO 15919 Indic',
['knda'] = 'ISO 15919 Indic',
['mlym'] = 'ISO 15919 Indic',
['orya'] = 'ISO 15919 Indic',
['sinh'] = 'ISO 15919 Indic',
['taml'] = 'ISO 15919 Indic',
['telu'] = 'ISO 15919 Indic',
['default'] = 'ISO transliteration',
},
['jyutping'] = {
['default'] = 'Jyutping transliteration',
},
['mlcts'] = {
['default'] = 'Myanmar Language Commission Transcription System',
},
['mr'] = {
['default'] = 'McCune–Reischauer transliteration',
},
['nihon-shiki'] = {
['default'] = 'Nihon-shiki transliteration',
},
['no_std'] = { -- when no transliteration standard is supplied
['akk'] = 'Semitic transliteration',
['sem'] = 'Semitic transliteration',
['phnx'] = 'Semitic transliteration',
['xsux'] = 'Cuneiform transliteration',
},
['pinyin'] = {
['default'] = 'Pinyin transliteration',
},
['rr'] = {
['default'] = 'Revised Romanization of Korean transliteration',
},
['rtgs'] = {
['default'] = 'Royal Thai General System of Transcription',
},
['satts'] = {
['default'] = 'Standard Arabic Technical Transliteration System transliteration',
},
['scientific'] = {
['default'] = 'scientific transliteration',
},
['ukrainian'] = {
['default'] = 'Ukrainian National system of romanization',
},
['ungegn'] = {
['default'] = 'United Nations Group of Experts on Geographical Names transliteration',
},
['wadegile'] = {
['default'] = 'Wade–Giles transliteration',
},
['wehr'] = {
['default'] = 'Hans Wehr transliteration',
},
};
return
{
this_wiki_lang_tag = this_wiki_lang_tag,
this_wiki_lang_dir = lang_obj:getDir(), -- wiki's language direction
article_name = article_name,
lang_name_table = lang_name_table_t,
override = override,
rtl_scripts = rtl_scripts,
special_tags_table = special_tags_table,
translit_title_table = translit_title_table,
};
8c0e8e62469fe1a7a015e92ede5d284b72725bff
Module:Language/data/iana languages
828
41
78
2024-01-03T21:18:45Z
Laggardson
2
Created page with "-- File-Date: 2022-03-02 local active = { ["aa"] = {"Afar"}, ["ab"] = {"Abkhazian"}, ["ae"] = {"Avestan"}, ["af"] = {"Afrikaans"}, ["ak"] = {"Akan"}, ["am"] = {"Amharic"}, ["an"] = {"Aragonese"}, ["ar"] = {"Arabic"}, ["as"] = {"Assamese"}, ["av"] = {"Avaric"}, ["ay"] = {"Aymara"}, ["az"] = {"Azerbaijani"}, ["ba"] = {"Bashkir"}, ["be"] = {"Belarusian"}, ["bg"] = {"Bulgarian"}, ["bh"] = {"Bihari languages"}, ["bi"] = {"Bislama"}, ["bm"] = {"Bambara"}, ["..."
Scribunto
text/plain
-- File-Date: 2022-03-02
local active = {
["aa"] = {"Afar"},
["ab"] = {"Abkhazian"},
["ae"] = {"Avestan"},
["af"] = {"Afrikaans"},
["ak"] = {"Akan"},
["am"] = {"Amharic"},
["an"] = {"Aragonese"},
["ar"] = {"Arabic"},
["as"] = {"Assamese"},
["av"] = {"Avaric"},
["ay"] = {"Aymara"},
["az"] = {"Azerbaijani"},
["ba"] = {"Bashkir"},
["be"] = {"Belarusian"},
["bg"] = {"Bulgarian"},
["bh"] = {"Bihari languages"},
["bi"] = {"Bislama"},
["bm"] = {"Bambara"},
["bn"] = {"Bengali", "Bangla"},
["bo"] = {"Tibetan"},
["br"] = {"Breton"},
["bs"] = {"Bosnian"},
["ca"] = {"Catalan", "Valencian"},
["ce"] = {"Chechen"},
["ch"] = {"Chamorro"},
["co"] = {"Corsican"},
["cr"] = {"Cree"},
["cs"] = {"Czech"},
["cu"] = {"Church Slavic", "Church Slavonic", "Old Bulgarian", "Old Church Slavonic", "Old Slavonic"},
["cv"] = {"Chuvash"},
["cy"] = {"Welsh"},
["da"] = {"Danish"},
["de"] = {"German"},
["dv"] = {"Dhivehi", "Divehi", "Maldivian"},
["dz"] = {"Dzongkha"},
["ee"] = {"Ewe"},
["el"] = {"Modern Greek (1453-)"},
["en"] = {"English"},
["eo"] = {"Esperanto"},
["es"] = {"Spanish", "Castilian"},
["et"] = {"Estonian"},
["eu"] = {"Basque"},
["fa"] = {"Persian"},
["ff"] = {"Fulah"},
["fi"] = {"Finnish"},
["fj"] = {"Fijian"},
["fo"] = {"Faroese"},
["fr"] = {"French"},
["fy"] = {"Western Frisian"},
["ga"] = {"Irish"},
["gd"] = {"Scottish Gaelic", "Gaelic"},
["gl"] = {"Galician"},
["gn"] = {"Guarani"},
["gu"] = {"Gujarati"},
["gv"] = {"Manx"},
["ha"] = {"Hausa"},
["he"] = {"Hebrew"},
["hi"] = {"Hindi"},
["ho"] = {"Hiri Motu"},
["hr"] = {"Croatian"},
["ht"] = {"Haitian", "Haitian Creole"},
["hu"] = {"Hungarian"},
["hy"] = {"Armenian"},
["hz"] = {"Herero"},
["ia"] = {"Interlingua (International Auxiliary Language Association)"},
["id"] = {"Indonesian"},
["ie"] = {"Interlingue", "Occidental"},
["ig"] = {"Igbo"},
["ii"] = {"Sichuan Yi", "Nuosu"},
["ik"] = {"Inupiaq"},
["io"] = {"Ido"},
["is"] = {"Icelandic"},
["it"] = {"Italian"},
["iu"] = {"Inuktitut"},
["ja"] = {"Japanese"},
["jv"] = {"Javanese"},
["ka"] = {"Georgian"},
["kg"] = {"Kongo"},
["ki"] = {"Kikuyu", "Gikuyu"},
["kj"] = {"Kuanyama", "Kwanyama"},
["kk"] = {"Kazakh"},
["kl"] = {"Kalaallisut", "Greenlandic"},
["km"] = {"Khmer", "Central Khmer"},
["kn"] = {"Kannada"},
["ko"] = {"Korean"},
["kr"] = {"Kanuri"},
["ks"] = {"Kashmiri"},
["ku"] = {"Kurdish"},
["kv"] = {"Komi"},
["kw"] = {"Cornish"},
["ky"] = {"Kirghiz", "Kyrgyz"},
["la"] = {"Latin"},
["lb"] = {"Luxembourgish", "Letzeburgesch"},
["lg"] = {"Ganda", "Luganda"},
["li"] = {"Limburgan", "Limburger", "Limburgish"},
["ln"] = {"Lingala"},
["lo"] = {"Lao"},
["lt"] = {"Lithuanian"},
["lu"] = {"Luba-Katanga"},
["lv"] = {"Latvian"},
["mg"] = {"Malagasy"},
["mh"] = {"Marshallese"},
["mi"] = {"Maori"},
["mk"] = {"Macedonian"},
["ml"] = {"Malayalam"},
["mn"] = {"Mongolian"},
["mr"] = {"Marathi"},
["ms"] = {"Malay (macrolanguage)"},
["mt"] = {"Maltese"},
["my"] = {"Burmese"},
["na"] = {"Nauru"},
["nb"] = {"Norwegian Bokmål"},
["nd"] = {"North Ndebele"},
["ne"] = {"Nepali (macrolanguage)"},
["ng"] = {"Ndonga"},
["nl"] = {"Dutch", "Flemish"},
["nn"] = {"Norwegian Nynorsk"},
["no"] = {"Norwegian"},
["nr"] = {"South Ndebele"},
["nv"] = {"Navajo", "Navaho"},
["ny"] = {"Nyanja", "Chewa", "Chichewa"},
["oc"] = {"Occitan (post 1500)"},
["oj"] = {"Ojibwa"},
["om"] = {"Oromo"},
["or"] = {"Oriya (macrolanguage)", "Odia (macrolanguage)"},
["os"] = {"Ossetian", "Ossetic"},
["pa"] = {"Panjabi", "Punjabi"},
["pi"] = {"Pali"},
["pl"] = {"Polish"},
["ps"] = {"Pushto", "Pashto"},
["pt"] = {"Portuguese"},
["qu"] = {"Quechua"},
["rm"] = {"Romansh"},
["rn"] = {"Rundi"},
["ro"] = {"Romanian", "Moldavian", "Moldovan"},
["ru"] = {"Russian"},
["rw"] = {"Kinyarwanda"},
["sa"] = {"Sanskrit"},
["sc"] = {"Sardinian"},
["sd"] = {"Sindhi"},
["se"] = {"Northern Sami"},
["sg"] = {"Sango"},
["sh"] = {"Serbo-Croatian"},
["si"] = {"Sinhala", "Sinhalese"},
["sk"] = {"Slovak"},
["sl"] = {"Slovenian"},
["sm"] = {"Samoan"},
["sn"] = {"Shona"},
["so"] = {"Somali"},
["sq"] = {"Albanian"},
["sr"] = {"Serbian"},
["ss"] = {"Swati"},
["st"] = {"Southern Sotho"},
["su"] = {"Sundanese"},
["sv"] = {"Swedish"},
["sw"] = {"Swahili (macrolanguage)"},
["ta"] = {"Tamil"},
["te"] = {"Telugu"},
["tg"] = {"Tajik"},
["th"] = {"Thai"},
["ti"] = {"Tigrinya"},
["tk"] = {"Turkmen"},
["tl"] = {"Tagalog"},
["tn"] = {"Tswana"},
["to"] = {"Tonga (Tonga Islands)"},
["tr"] = {"Turkish"},
["ts"] = {"Tsonga"},
["tt"] = {"Tatar"},
["tw"] = {"Twi"},
["ty"] = {"Tahitian"},
["ug"] = {"Uighur", "Uyghur"},
["uk"] = {"Ukrainian"},
["ur"] = {"Urdu"},
["uz"] = {"Uzbek"},
["ve"] = {"Venda"},
["vi"] = {"Vietnamese"},
["vo"] = {"Volapük"},
["wa"] = {"Walloon"},
["wo"] = {"Wolof"},
["xh"] = {"Xhosa"},
["yi"] = {"Yiddish"},
["yo"] = {"Yoruba"},
["za"] = {"Zhuang", "Chuang"},
["zh"] = {"Chinese"},
["zu"] = {"Zulu"},
["aaa"] = {"Ghotuo"},
["aab"] = {"Alumu-Tesu"},
["aac"] = {"Ari"},
["aad"] = {"Amal"},
["aae"] = {"Arbëreshë Albanian"},
["aaf"] = {"Aranadan"},
["aag"] = {"Ambrak"},
["aah"] = {"Abu' Arapesh"},
["aai"] = {"Arifama-Miniafia"},
["aak"] = {"Ankave"},
["aal"] = {"Afade"},
["aan"] = {"Anambé"},
["aao"] = {"Algerian Saharan Arabic"},
["aap"] = {"Pará Arára"},
["aaq"] = {"Eastern Abnaki"},
["aas"] = {"Aasáx"},
["aat"] = {"Arvanitika Albanian"},
["aau"] = {"Abau"},
["aav"] = {"Austro-Asiatic languages"},
["aaw"] = {"Solong"},
["aax"] = {"Mandobo Atas"},
["aaz"] = {"Amarasi"},
["aba"] = {"Abé"},
["abb"] = {"Bankon"},
["abc"] = {"Ambala Ayta"},
["abd"] = {"Manide"},
["abe"] = {"Western Abnaki"},
["abf"] = {"Abai Sungai"},
["abg"] = {"Abaga"},
["abh"] = {"Tajiki Arabic"},
["abi"] = {"Abidji"},
["abj"] = {"Aka-Bea"},
["abl"] = {"Lampung Nyo"},
["abm"] = {"Abanyom"},
["abn"] = {"Abua"},
["abo"] = {"Abon"},
["abp"] = {"Abellen Ayta"},
["abq"] = {"Abaza"},
["abr"] = {"Abron"},
["abs"] = {"Ambonese Malay"},
["abt"] = {"Ambulas"},
["abu"] = {"Abure"},
["abv"] = {"Baharna Arabic"},
["abw"] = {"Pal"},
["abx"] = {"Inabaknon"},
["aby"] = {"Aneme Wake"},
["abz"] = {"Abui"},
["aca"] = {"Achagua"},
["acb"] = {"Áncá"},
["acd"] = {"Gikyode"},
["ace"] = {"Achinese"},
["acf"] = {"Saint Lucian Creole French"},
["ach"] = {"Acoli"},
["aci"] = {"Aka-Cari"},
["ack"] = {"Aka-Kora"},
["acl"] = {"Akar-Bale"},
["acm"] = {"Mesopotamian Arabic"},
["acn"] = {"Achang"},
["acp"] = {"Eastern Acipa"},
["acq"] = {"Ta'izzi-Adeni Arabic"},
["acr"] = {"Achi"},
["acs"] = {"Acroá"},
["act"] = {"Achterhoeks"},
["acu"] = {"Achuar-Shiwiar"},
["acv"] = {"Achumawi"},
["acw"] = {"Hijazi Arabic"},
["acx"] = {"Omani Arabic"},
["acy"] = {"Cypriot Arabic"},
["acz"] = {"Acheron"},
["ada"] = {"Adangme"},
["adb"] = {"Atauran"},
["add"] = {"Lidzonka", "Dzodinka"},
["ade"] = {"Adele"},
["adf"] = {"Dhofari Arabic"},
["adg"] = {"Andegerebinha"},
["adh"] = {"Adhola"},
["adi"] = {"Adi"},
["adj"] = {"Adioukrou"},
["adl"] = {"Galo"},
["adn"] = {"Adang"},
["ado"] = {"Abu"},
["adq"] = {"Adangbe"},
["adr"] = {"Adonara"},
["ads"] = {"Adamorobe Sign Language"},
["adt"] = {"Adnyamathanha"},
["adu"] = {"Aduge"},
["adw"] = {"Amundava"},
["adx"] = {"Amdo Tibetan"},
["ady"] = {"Adyghe", "Adygei"},
["adz"] = {"Adzera"},
["aea"] = {"Areba"},
["aeb"] = {"Tunisian Arabic"},
["aec"] = {"Saidi Arabic"},
["aed"] = {"Argentine Sign Language"},
["aee"] = {"Northeast Pashai", "Northeast Pashayi"},
["aek"] = {"Haeke"},
["ael"] = {"Ambele"},
["aem"] = {"Arem"},
["aen"] = {"Armenian Sign Language"},
["aeq"] = {"Aer"},
["aer"] = {"Eastern Arrernte"},
["aes"] = {"Alsea"},
["aeu"] = {"Akeu"},
["aew"] = {"Ambakich"},
["aey"] = {"Amele"},
["aez"] = {"Aeka"},
["afa"] = {"Afro-Asiatic languages"},
["afb"] = {"Gulf Arabic"},
["afd"] = {"Andai"},
["afe"] = {"Putukwam"},
["afg"] = {"Afghan Sign Language"},
["afh"] = {"Afrihili"},
["afi"] = {"Akrukay", "Chini"},
["afk"] = {"Nanubae"},
["afn"] = {"Defaka"},
["afo"] = {"Eloyi"},
["afp"] = {"Tapei"},
["afs"] = {"Afro-Seminole Creole"},
["aft"] = {"Afitti"},
["afu"] = {"Awutu"},
["afz"] = {"Obokuitai"},
["aga"] = {"Aguano"},
["agb"] = {"Legbo"},
["agc"] = {"Agatu"},
["agd"] = {"Agarabi"},
["age"] = {"Angal"},
["agf"] = {"Arguni"},
["agg"] = {"Angor"},
["agh"] = {"Ngelima"},
["agi"] = {"Agariya"},
["agj"] = {"Argobba"},
["agk"] = {"Isarog Agta"},
["agl"] = {"Fembe"},
["agm"] = {"Angaataha"},
["agn"] = {"Agutaynen"},
["ago"] = {"Tainae"},
["agq"] = {"Aghem"},
["agr"] = {"Aguaruna"},
["ags"] = {"Esimbi"},
["agt"] = {"Central Cagayan Agta"},
["agu"] = {"Aguacateco"},
["agv"] = {"Remontado Dumagat"},
["agw"] = {"Kahua"},
["agx"] = {"Aghul"},
["agy"] = {"Southern Alta"},
["agz"] = {"Mt. Iriga Agta"},
["aha"] = {"Ahanta"},
["ahb"] = {"Axamb"},
["ahg"] = {"Qimant"},
["ahh"] = {"Aghu"},
["ahi"] = {"Tiagbamrin Aizi"},
["ahk"] = {"Akha"},
["ahl"] = {"Igo"},
["ahm"] = {"Mobumrin Aizi"},
["ahn"] = {"Àhàn"},
["aho"] = {"Ahom"},
["ahp"] = {"Aproumu Aizi"},
["ahr"] = {"Ahirani"},
["ahs"] = {"Ashe"},
["aht"] = {"Ahtena"},
["aia"] = {"Arosi"},
["aib"] = {"Ainu (China)"},
["aic"] = {"Ainbai"},
["aid"] = {"Alngith"},
["aie"] = {"Amara"},
["aif"] = {"Agi"},
["aig"] = {"Antigua and Barbuda Creole English"},
["aih"] = {"Ai-Cham"},
["aii"] = {"Assyrian Neo-Aramaic"},
["aij"] = {"Lishanid Noshan"},
["aik"] = {"Ake"},
["ail"] = {"Aimele"},
["aim"] = {"Aimol"},
["ain"] = {"Ainu (Japan)"},
["aio"] = {"Aiton"},
["aip"] = {"Burumakok"},
["aiq"] = {"Aimaq"},
["air"] = {"Airoran"},
["ait"] = {"Arikem"},
["aiw"] = {"Aari"},
["aix"] = {"Aighon"},
["aiy"] = {"Ali"},
["aja"] = {"Aja (South Sudan)"},
["ajg"] = {"Aja (Benin)"},
["aji"] = {"Ajië"},
["ajn"] = {"Andajin"},
["ajp"] = {"South Levantine Arabic"},
["ajs"] = {"Algerian Jewish Sign Language"},
["aju"] = {"Judeo-Moroccan Arabic"},
["ajw"] = {"Ajawa"},
["ajz"] = {"Amri Karbi"},
["akb"] = {"Batak Angkola"},
["akc"] = {"Mpur"},
["akd"] = {"Ukpet-Ehom"},
["ake"] = {"Akawaio"},
["akf"] = {"Akpa"},
["akg"] = {"Anakalangu"},
["akh"] = {"Angal Heneng"},
["aki"] = {"Aiome"},
["akj"] = {"Aka-Jeru"},
["akk"] = {"Akkadian"},
["akl"] = {"Aklanon"},
["akm"] = {"Aka-Bo"},
["ako"] = {"Akurio"},
["akp"] = {"Siwu"},
["akq"] = {"Ak"},
["akr"] = {"Araki"},
["aks"] = {"Akaselem"},
["akt"] = {"Akolet"},
["aku"] = {"Akum"},
["akv"] = {"Akhvakh"},
["akw"] = {"Akwa"},
["akx"] = {"Aka-Kede"},
["aky"] = {"Aka-Kol"},
["akz"] = {"Alabama"},
["ala"] = {"Alago"},
["alc"] = {"Qawasqar"},
["ald"] = {"Alladian"},
["ale"] = {"Aleut"},
["alf"] = {"Alege"},
["alg"] = {"Algonquian languages"},
["alh"] = {"Alawa"},
["ali"] = {"Amaimon"},
["alj"] = {"Alangan"},
["alk"] = {"Alak"},
["all"] = {"Allar"},
["alm"] = {"Amblong"},
["aln"] = {"Gheg Albanian"},
["alo"] = {"Larike-Wakasihu"},
["alp"] = {"Alune"},
["alq"] = {"Algonquin"},
["alr"] = {"Alutor"},
["als"] = {"Tosk Albanian"},
["alt"] = {"Southern Altai"},
["alu"] = {"'Are'are"},
["alv"] = {"Atlantic-Congo languages"},
["alw"] = {"Alaba-K’abeena", "Wanbasana"},
["alx"] = {"Amol"},
["aly"] = {"Alyawarr"},
["alz"] = {"Alur"},
["ama"] = {"Amanayé"},
["amb"] = {"Ambo"},
["amc"] = {"Amahuaca"},
["ame"] = {"Yanesha'"},
["amf"] = {"Hamer-Banna"},
["amg"] = {"Amurdak"},
["ami"] = {"Amis"},
["amj"] = {"Amdang"},
["amk"] = {"Ambai"},
["aml"] = {"War-Jaintia"},
["amm"] = {"Ama (Papua New Guinea)"},
["amn"] = {"Amanab"},
["amo"] = {"Amo"},
["amp"] = {"Alamblak"},
["amq"] = {"Amahai"},
["amr"] = {"Amarakaeri"},
["ams"] = {"Southern Amami-Oshima"},
["amt"] = {"Amto"},
["amu"] = {"Guerrero Amuzgo"},
["amv"] = {"Ambelau"},
["amw"] = {"Western Neo-Aramaic"},
["amx"] = {"Anmatyerre"},
["amy"] = {"Ami"},
["amz"] = {"Atampaya"},
["ana"] = {"Andaqui"},
["anb"] = {"Andoa"},
["anc"] = {"Ngas"},
["and"] = {"Ansus"},
["ane"] = {"Xârâcùù"},
["anf"] = {"Animere"},
["ang"] = {"Old English (ca. 450-1100)"},
["anh"] = {"Nend"},
["ani"] = {"Andi"},
["anj"] = {"Anor"},
["ank"] = {"Goemai"},
["anl"] = {"Anu-Hkongso Chin"},
["anm"] = {"Anal"},
["ann"] = {"Obolo"},
["ano"] = {"Andoque"},
["anp"] = {"Angika"},
["anq"] = {"Jarawa (India)"},
["anr"] = {"Andh"},
["ans"] = {"Anserma"},
["ant"] = {"Antakarinya", "Antikarinya"},
["anu"] = {"Anuak"},
["anv"] = {"Denya"},
["anw"] = {"Anaang"},
["anx"] = {"Andra-Hus"},
["any"] = {"Anyin"},
["anz"] = {"Anem"},
["aoa"] = {"Angolar"},
["aob"] = {"Abom"},
["aoc"] = {"Pemon"},
["aod"] = {"Andarum"},
["aoe"] = {"Angal Enen"},
["aof"] = {"Bragat"},
["aog"] = {"Angoram"},
["aoi"] = {"Anindilyakwa"},
["aoj"] = {"Mufian"},
["aok"] = {"Arhö"},
["aol"] = {"Alor"},
["aom"] = {"Ömie"},
["aon"] = {"Bumbita Arapesh"},
["aor"] = {"Aore"},
["aos"] = {"Taikat"},
["aot"] = {"Atong (India)", "A'tong"},
["aou"] = {"A'ou"},
["aox"] = {"Atorada"},
["aoz"] = {"Uab Meto"},
["apa"] = {"Apache languages"},
["apb"] = {"Sa'a"},
["apc"] = {"North Levantine Arabic"},
["apd"] = {"Sudanese Arabic"},
["ape"] = {"Bukiyip"},
["apf"] = {"Pahanan Agta"},
["apg"] = {"Ampanang"},
["aph"] = {"Athpariya"},
["api"] = {"Apiaká"},
["apj"] = {"Jicarilla Apache"},
["apk"] = {"Kiowa Apache"},
["apl"] = {"Lipan Apache"},
["apm"] = {"Mescalero-Chiricahua Apache"},
["apn"] = {"Apinayé"},
["apo"] = {"Ambul"},
["app"] = {"Apma"},
["apq"] = {"A-Pucikwar"},
["apr"] = {"Arop-Lokep"},
["aps"] = {"Arop-Sissano"},
["apt"] = {"Apatani"},
["apu"] = {"Apurinã"},
["apv"] = {"Alapmunte"},
["apw"] = {"Western Apache"},
["apx"] = {"Aputai"},
["apy"] = {"Apalaí"},
["apz"] = {"Safeyoka"},
["aqa"] = {"Alacalufan languages"},
["aqc"] = {"Archi"},
["aqd"] = {"Ampari Dogon"},
["aqg"] = {"Arigidi"},
["aqk"] = {"Aninka"},
["aql"] = {"Algic languages"},
["aqm"] = {"Atohwaim"},
["aqn"] = {"Northern Alta"},
["aqp"] = {"Atakapa"},
["aqr"] = {"Arhâ"},
["aqt"] = {"Angaité"},
["aqz"] = {"Akuntsu"},
["arb"] = {"Standard Arabic"},
["arc"] = {"Official Aramaic (700-300 BCE)", "Imperial Aramaic (700-300 BCE)"},
["ard"] = {"Arabana"},
["are"] = {"Western Arrarnta"},
["arh"] = {"Arhuaco"},
["ari"] = {"Arikara"},
["arj"] = {"Arapaso"},
["ark"] = {"Arikapú"},
["arl"] = {"Arabela"},
["arn"] = {"Mapudungun", "Mapuche"},
["aro"] = {"Araona"},
["arp"] = {"Arapaho"},
["arq"] = {"Algerian Arabic"},
["arr"] = {"Karo (Brazil)"},
["ars"] = {"Najdi Arabic"},
["art"] = {"Artificial languages"},
["aru"] = {"Aruá (Amazonas State)", "Arawá"},
["arv"] = {"Arbore"},
["arw"] = {"Arawak"},
["arx"] = {"Aruá (Rodonia State)"},
["ary"] = {"Moroccan Arabic"},
["arz"] = {"Egyptian Arabic"},
["asa"] = {"Asu (Tanzania)"},
["asb"] = {"Assiniboine"},
["asc"] = {"Casuarina Coast Asmat"},
["ase"] = {"American Sign Language"},
["asf"] = {"Auslan", "Australian Sign Language"},
["asg"] = {"Cishingini"},
["ash"] = {"Abishira"},
["asi"] = {"Buruwai"},
["asj"] = {"Sari"},
["ask"] = {"Ashkun"},
["asl"] = {"Asilulu"},
["asn"] = {"Xingú Asuriní"},
["aso"] = {"Dano"},
["asp"] = {"Algerian Sign Language"},
["asq"] = {"Austrian Sign Language"},
["asr"] = {"Asuri"},
["ass"] = {"Ipulo"},
["ast"] = {"Asturian", "Asturleonese", "Bable", "Leonese"},
["asu"] = {"Tocantins Asurini"},
["asv"] = {"Asoa"},
["asw"] = {"Australian Aborigines Sign Language"},
["asx"] = {"Muratayak"},
["asy"] = {"Yaosakor Asmat"},
["asz"] = {"As"},
["ata"] = {"Pele-Ata"},
["atb"] = {"Zaiwa"},
["atc"] = {"Atsahuaca"},
["atd"] = {"Ata Manobo"},
["ate"] = {"Atemble"},
["atg"] = {"Ivbie North-Okpela-Arhe"},
["ath"] = {"Athapascan languages"},
["ati"] = {"Attié"},
["atj"] = {"Atikamekw"},
["atk"] = {"Ati"},
["atl"] = {"Mt. Iraya Agta"},
["atm"] = {"Ata"},
["atn"] = {"Ashtiani"},
["ato"] = {"Atong (Cameroon)"},
["atp"] = {"Pudtol Atta"},
["atq"] = {"Aralle-Tabulahan"},
["atr"] = {"Waimiri-Atroari"},
["ats"] = {"Gros Ventre"},
["att"] = {"Pamplona Atta"},
["atu"] = {"Reel"},
["atv"] = {"Northern Altai"},
["atw"] = {"Atsugewi"},
["atx"] = {"Arutani"},
["aty"] = {"Aneityum"},
["atz"] = {"Arta"},
["aua"] = {"Asumboa"},
["aub"] = {"Alugu"},
["auc"] = {"Waorani"},
["aud"] = {"Anuta"},
["auf"] = {"Arauan languages"},
["aug"] = {"Aguna"},
["auh"] = {"Aushi"},
["aui"] = {"Anuki"},
["auj"] = {"Awjilah"},
["auk"] = {"Heyo"},
["aul"] = {"Aulua"},
["aum"] = {"Asu (Nigeria)"},
["aun"] = {"Molmo One"},
["auo"] = {"Auyokawa"},
["aup"] = {"Makayam"},
["auq"] = {"Anus", "Korur"},
["aur"] = {"Aruek"},
["aus"] = {"Australian languages"},
["aut"] = {"Austral"},
["auu"] = {"Auye"},
["auw"] = {"Awyi"},
["aux"] = {"Aurá"},
["auy"] = {"Awiyaana"},
["auz"] = {"Uzbeki Arabic"},
["avb"] = {"Avau"},
["avd"] = {"Alviri-Vidari"},
["avi"] = {"Avikam"},
["avk"] = {"Kotava"},
["avl"] = {"Eastern Egyptian Bedawi Arabic"},
["avm"] = {"Angkamuthi"},
["avn"] = {"Avatime"},
["avo"] = {"Agavotaguerra"},
["avs"] = {"Aushiri"},
["avt"] = {"Au"},
["avu"] = {"Avokaya"},
["avv"] = {"Avá-Canoeiro"},
["awa"] = {"Awadhi"},
["awb"] = {"Awa (Papua New Guinea)"},
["awc"] = {"Cicipu"},
["awd"] = {"Arawakan languages"},
["awe"] = {"Awetí"},
["awg"] = {"Anguthimri"},
["awh"] = {"Awbono"},
["awi"] = {"Aekyom"},
["awk"] = {"Awabakal"},
["awm"] = {"Arawum"},
["awn"] = {"Awngi"},
["awo"] = {"Awak"},
["awr"] = {"Awera"},
["aws"] = {"South Awyu"},
["awt"] = {"Araweté"},
["awu"] = {"Central Awyu"},
["awv"] = {"Jair Awyu"},
["aww"] = {"Awun"},
["awx"] = {"Awara"},
["awy"] = {"Edera Awyu"},
["axb"] = {"Abipon"},
["axe"] = {"Ayerrerenge"},
["axg"] = {"Mato Grosso Arára"},
["axk"] = {"Yaka (Central African Republic)"},
["axl"] = {"Lower Southern Aranda"},
["axm"] = {"Middle Armenian"},
["axx"] = {"Xârâgurè"},
["aya"] = {"Awar"},
["ayb"] = {"Ayizo Gbe"},
["ayc"] = {"Southern Aymara"},
["ayd"] = {"Ayabadhu"},
["aye"] = {"Ayere"},
["ayg"] = {"Ginyanga"},
["ayh"] = {"Hadrami Arabic"},
["ayi"] = {"Leyigha"},
["ayk"] = {"Akuku"},
["ayl"] = {"Libyan Arabic"},
["ayn"] = {"Sanaani Arabic"},
["ayo"] = {"Ayoreo"},
["ayp"] = {"North Mesopotamian Arabic"},
["ayq"] = {"Ayi (Papua New Guinea)"},
["ayr"] = {"Central Aymara"},
["ays"] = {"Sorsogon Ayta"},
["ayt"] = {"Magbukun Ayta"},
["ayu"] = {"Ayu"},
["ayz"] = {"Mai Brat"},
["aza"] = {"Azha"},
["azb"] = {"South Azerbaijani"},
["azc"] = {"Uto-Aztecan languages"},
["azd"] = {"Eastern Durango Nahuatl"},
["azg"] = {"San Pedro Amuzgos Amuzgo"},
["azj"] = {"North Azerbaijani"},
["azm"] = {"Ipalapa Amuzgo"},
["azn"] = {"Western Durango Nahuatl"},
["azo"] = {"Awing"},
["azt"] = {"Faire Atta"},
["azz"] = {"Highland Puebla Nahuatl"},
["baa"] = {"Babatana"},
["bab"] = {"Bainouk-Gunyuño"},
["bac"] = {"Badui"},
["bad"] = {"Banda languages"},
["bae"] = {"Baré"},
["baf"] = {"Nubaca"},
["bag"] = {"Tuki"},
["bah"] = {"Bahamas Creole English"},
["bai"] = {"Bamileke languages"},
["baj"] = {"Barakai"},
["bal"] = {"Baluchi"},
["ban"] = {"Balinese"},
["bao"] = {"Waimaha"},
["bap"] = {"Bantawa"},
["bar"] = {"Bavarian"},
["bas"] = {"Basa (Cameroon)"},
["bat"] = {"Baltic languages"},
["bau"] = {"Bada (Nigeria)"},
["bav"] = {"Vengo"},
["baw"] = {"Bambili-Bambui"},
["bax"] = {"Bamun"},
["bay"] = {"Batuley"},
["bba"] = {"Baatonum"},
["bbb"] = {"Barai"},
["bbc"] = {"Batak Toba"},
["bbd"] = {"Bau"},
["bbe"] = {"Bangba"},
["bbf"] = {"Baibai"},
["bbg"] = {"Barama"},
["bbh"] = {"Bugan"},
["bbi"] = {"Barombi"},
["bbj"] = {"Ghomálá'"},
["bbk"] = {"Babanki"},
["bbl"] = {"Bats"},
["bbm"] = {"Babango"},
["bbn"] = {"Uneapa"},
["bbo"] = {"Northern Bobo Madaré", "Konabéré"},
["bbp"] = {"West Central Banda"},
["bbq"] = {"Bamali"},
["bbr"] = {"Girawa"},
["bbs"] = {"Bakpinka"},
["bbt"] = {"Mburku"},
["bbu"] = {"Kulung (Nigeria)"},
["bbv"] = {"Karnai"},
["bbw"] = {"Baba"},
["bbx"] = {"Bubia"},
["bby"] = {"Befang"},
["bca"] = {"Central Bai"},
["bcb"] = {"Bainouk-Samik"},
["bcc"] = {"Southern Balochi"},
["bcd"] = {"North Babar"},
["bce"] = {"Bamenyam"},
["bcf"] = {"Bamu"},
["bcg"] = {"Baga Pokur"},
["bch"] = {"Bariai"},
["bci"] = {"Baoulé"},
["bcj"] = {"Bardi"},
["bck"] = {"Bunuba"},
["bcl"] = {"Central Bikol"},
["bcm"] = {"Bannoni"},
["bcn"] = {"Bali (Nigeria)"},
["bco"] = {"Kaluli"},
["bcp"] = {"Bali (Democratic Republic of Congo)"},
["bcq"] = {"Bench"},
["bcr"] = {"Babine"},
["bcs"] = {"Kohumono"},
["bct"] = {"Bendi"},
["bcu"] = {"Awad Bing"},
["bcv"] = {"Shoo-Minda-Nye"},
["bcw"] = {"Bana"},
["bcy"] = {"Bacama"},
["bcz"] = {"Bainouk-Gunyaamolo"},
["bda"] = {"Bayot"},
["bdb"] = {"Basap"},
["bdc"] = {"Emberá-Baudó"},
["bdd"] = {"Bunama"},
["bde"] = {"Bade"},
["bdf"] = {"Biage"},
["bdg"] = {"Bonggi"},
["bdh"] = {"Baka (South Sudan)"},
["bdi"] = {"Burun"},
["bdj"] = {"Bai (South Sudan)", "Bai"},
["bdk"] = {"Budukh"},
["bdl"] = {"Indonesian Bajau"},
["bdm"] = {"Buduma"},
["bdn"] = {"Baldemu"},
["bdo"] = {"Morom"},
["bdp"] = {"Bende"},
["bdq"] = {"Bahnar"},
["bdr"] = {"West Coast Bajau"},
["bds"] = {"Burunge"},
["bdt"] = {"Bokoto"},
["bdu"] = {"Oroko"},
["bdv"] = {"Bodo Parja"},
["bdw"] = {"Baham"},
["bdx"] = {"Budong-Budong"},
["bdy"] = {"Bandjalang"},
["bdz"] = {"Badeshi"},
["bea"] = {"Beaver"},
["beb"] = {"Bebele"},
["bec"] = {"Iceve-Maci"},
["bed"] = {"Bedoanas"},
["bee"] = {"Byangsi"},
["bef"] = {"Benabena"},
["beg"] = {"Belait"},
["beh"] = {"Biali"},
["bei"] = {"Bekati'"},
["bej"] = {"Beja", "Bedawiyet"},
["bek"] = {"Bebeli"},
["bem"] = {"Bemba (Zambia)"},
["beo"] = {"Beami"},
["bep"] = {"Besoa"},
["beq"] = {"Beembe"},
["ber"] = {"Berber languages"},
["bes"] = {"Besme"},
["bet"] = {"Guiberoua Béte"},
["beu"] = {"Blagar"},
["bev"] = {"Daloa Bété"},
["bew"] = {"Betawi"},
["bex"] = {"Jur Modo"},
["bey"] = {"Beli (Papua New Guinea)"},
["bez"] = {"Bena (Tanzania)"},
["bfa"] = {"Bari"},
["bfb"] = {"Pauri Bareli"},
["bfc"] = {"Panyi Bai", "Northern Bai"},
["bfd"] = {"Bafut"},
["bfe"] = {"Betaf", "Tena"},
["bff"] = {"Bofi"},
["bfg"] = {"Busang Kayan"},
["bfh"] = {"Blafe"},
["bfi"] = {"British Sign Language"},
["bfj"] = {"Bafanji"},
["bfk"] = {"Ban Khor Sign Language"},
["bfl"] = {"Banda-Ndélé"},
["bfm"] = {"Mmen"},
["bfn"] = {"Bunak"},
["bfo"] = {"Malba Birifor"},
["bfp"] = {"Beba"},
["bfq"] = {"Badaga"},
["bfr"] = {"Bazigar"},
["bfs"] = {"Southern Bai"},
["bft"] = {"Balti"},
["bfu"] = {"Gahri"},
["bfw"] = {"Bondo"},
["bfx"] = {"Bantayanon"},
["bfy"] = {"Bagheli"},
["bfz"] = {"Mahasu Pahari"},
["bga"] = {"Gwamhi-Wuri"},
["bgb"] = {"Bobongko"},
["bgc"] = {"Haryanvi"},
["bgd"] = {"Rathwi Bareli"},
["bge"] = {"Bauria"},
["bgf"] = {"Bangandu"},
["bgg"] = {"Bugun"},
["bgi"] = {"Giangan"},
["bgj"] = {"Bangolan"},
["bgk"] = {"Bit", "Buxinhua"},
["bgl"] = {"Bo (Laos)"},
["bgn"] = {"Western Balochi"},
["bgo"] = {"Baga Koga"},
["bgp"] = {"Eastern Balochi"},
["bgq"] = {"Bagri"},
["bgr"] = {"Bawm Chin"},
["bgs"] = {"Tagabawa"},
["bgt"] = {"Bughotu"},
["bgu"] = {"Mbongno"},
["bgv"] = {"Warkay-Bipim"},
["bgw"] = {"Bhatri"},
["bgx"] = {"Balkan Gagauz Turkish"},
["bgy"] = {"Benggoi"},
["bgz"] = {"Banggai"},
["bha"] = {"Bharia"},
["bhb"] = {"Bhili"},
["bhc"] = {"Biga"},
["bhd"] = {"Bhadrawahi"},
["bhe"] = {"Bhaya"},
["bhf"] = {"Odiai"},
["bhg"] = {"Binandere"},
["bhh"] = {"Bukharic"},
["bhi"] = {"Bhilali"},
["bhj"] = {"Bahing"},
["bhl"] = {"Bimin"},
["bhm"] = {"Bathari"},
["bhn"] = {"Bohtan Neo-Aramaic"},
["bho"] = {"Bhojpuri"},
["bhp"] = {"Bima"},
["bhq"] = {"Tukang Besi South"},
["bhr"] = {"Bara Malagasy"},
["bhs"] = {"Buwal"},
["bht"] = {"Bhattiyali"},
["bhu"] = {"Bhunjia"},
["bhv"] = {"Bahau"},
["bhw"] = {"Biak"},
["bhx"] = {"Bhalay"},
["bhy"] = {"Bhele"},
["bhz"] = {"Bada (Indonesia)"},
["bia"] = {"Badimaya"},
["bib"] = {"Bissa", "Bisa"},
["bid"] = {"Bidiyo"},
["bie"] = {"Bepour"},
["bif"] = {"Biafada"},
["big"] = {"Biangai"},
["bik"] = {"Bikol"},
["bil"] = {"Bile"},
["bim"] = {"Bimoba"},
["bin"] = {"Bini", "Edo"},
["bio"] = {"Nai"},
["bip"] = {"Bila"},
["biq"] = {"Bipi"},
["bir"] = {"Bisorio"},
["bit"] = {"Berinomo"},
["biu"] = {"Biete"},
["biv"] = {"Southern Birifor"},
["biw"] = {"Kol (Cameroon)"},
["bix"] = {"Bijori"},
["biy"] = {"Birhor"},
["biz"] = {"Baloi"},
["bja"] = {"Budza"},
["bjb"] = {"Banggarla"},
["bjc"] = {"Bariji"},
["bje"] = {"Biao-Jiao Mien"},
["bjf"] = {"Barzani Jewish Neo-Aramaic"},
["bjg"] = {"Bidyogo"},
["bjh"] = {"Bahinemo"},
["bji"] = {"Burji"},
["bjj"] = {"Kanauji"},
["bjk"] = {"Barok"},
["bjl"] = {"Bulu (Papua New Guinea)"},
["bjm"] = {"Bajelani"},
["bjn"] = {"Banjar"},
["bjo"] = {"Mid-Southern Banda"},
["bjp"] = {"Fanamaket"},
["bjr"] = {"Binumarien"},
["bjs"] = {"Bajan"},
["bjt"] = {"Balanta-Ganja"},
["bju"] = {"Busuu"},
["bjv"] = {"Bedjond"},
["bjw"] = {"Bakwé"},
["bjx"] = {"Banao Itneg"},
["bjy"] = {"Bayali"},
["bjz"] = {"Baruga"},
["bka"] = {"Kyak"},
["bkc"] = {"Baka (Cameroon)"},
["bkd"] = {"Binukid", "Talaandig"},
["bkf"] = {"Beeke"},
["bkg"] = {"Buraka"},
["bkh"] = {"Bakoko"},
["bki"] = {"Baki"},
["bkj"] = {"Pande"},
["bkk"] = {"Brokskat"},
["bkl"] = {"Berik"},
["bkm"] = {"Kom (Cameroon)"},
["bkn"] = {"Bukitan"},
["bko"] = {"Kwa'"},
["bkp"] = {"Boko (Democratic Republic of Congo)"},
["bkq"] = {"Bakairí"},
["bkr"] = {"Bakumpai"},
["bks"] = {"Northern Sorsoganon"},
["bkt"] = {"Boloki"},
["bku"] = {"Buhid"},
["bkv"] = {"Bekwarra"},
["bkw"] = {"Bekwel"},
["bkx"] = {"Baikeno"},
["bky"] = {"Bokyi"},
["bkz"] = {"Bungku"},
["bla"] = {"Siksika"},
["blb"] = {"Bilua"},
["blc"] = {"Bella Coola"},
["bld"] = {"Bolango"},
["ble"] = {"Balanta-Kentohe"},
["blf"] = {"Buol"},
["blh"] = {"Kuwaa"},
["bli"] = {"Bolia"},
["blj"] = {"Bolongan"},
["blk"] = {"Pa'o Karen", "Pa'O"},
["bll"] = {"Biloxi"},
["blm"] = {"Beli (South Sudan)"},
["bln"] = {"Southern Catanduanes Bikol"},
["blo"] = {"Anii"},
["blp"] = {"Blablanga"},
["blq"] = {"Baluan-Pam"},
["blr"] = {"Blang"},
["bls"] = {"Balaesang"},
["blt"] = {"Tai Dam"},
["blv"] = {"Kibala", "Bolo"},
["blw"] = {"Balangao"},
["blx"] = {"Mag-Indi Ayta"},
["bly"] = {"Notre"},
["blz"] = {"Balantak"},
["bma"] = {"Lame"},
["bmb"] = {"Bembe"},
["bmc"] = {"Biem"},
["bmd"] = {"Baga Manduri"},
["bme"] = {"Limassa"},
["bmf"] = {"Bom-Kim"},
["bmg"] = {"Bamwe"},
["bmh"] = {"Kein"},
["bmi"] = {"Bagirmi"},
["bmj"] = {"Bote-Majhi"},
["bmk"] = {"Ghayavi"},
["bml"] = {"Bomboli"},
["bmm"] = {"Northern Betsimisaraka Malagasy"},
["bmn"] = {"Bina (Papua New Guinea)"},
["bmo"] = {"Bambalang"},
["bmp"] = {"Bulgebi"},
["bmq"] = {"Bomu"},
["bmr"] = {"Muinane"},
["bms"] = {"Bilma Kanuri"},
["bmt"] = {"Biao Mon"},
["bmu"] = {"Somba-Siawari"},
["bmv"] = {"Bum"},
["bmw"] = {"Bomwali"},
["bmx"] = {"Baimak"},
["bmz"] = {"Baramu"},
["bna"] = {"Bonerate"},
["bnb"] = {"Bookan"},
["bnc"] = {"Bontok"},
["bnd"] = {"Banda (Indonesia)"},
["bne"] = {"Bintauna"},
["bnf"] = {"Masiwang"},
["bng"] = {"Benga"},
["bni"] = {"Bangi"},
["bnj"] = {"Eastern Tawbuid"},
["bnk"] = {"Bierebo"},
["bnl"] = {"Boon"},
["bnm"] = {"Batanga"},
["bnn"] = {"Bunun"},
["bno"] = {"Bantoanon"},
["bnp"] = {"Bola"},
["bnq"] = {"Bantik"},
["bnr"] = {"Butmas-Tur"},
["bns"] = {"Bundeli"},
["bnt"] = {"Bantu languages"},
["bnu"] = {"Bentong"},
["bnv"] = {"Bonerif", "Beneraf", "Edwas"},
["bnw"] = {"Bisis"},
["bnx"] = {"Bangubangu"},
["bny"] = {"Bintulu"},
["bnz"] = {"Beezen"},
["boa"] = {"Bora"},
["bob"] = {"Aweer"},
["boe"] = {"Mundabli"},
["bof"] = {"Bolon"},
["bog"] = {"Bamako Sign Language"},
["boh"] = {"Boma"},
["boi"] = {"Barbareño"},
["boj"] = {"Anjam"},
["bok"] = {"Bonjo"},
["bol"] = {"Bole"},
["bom"] = {"Berom"},
["bon"] = {"Bine"},
["boo"] = {"Tiemacèwè Bozo"},
["bop"] = {"Bonkiman"},
["boq"] = {"Bogaya"},
["bor"] = {"Borôro"},
["bot"] = {"Bongo"},
["bou"] = {"Bondei"},
["bov"] = {"Tuwuli"},
["bow"] = {"Rema"},
["box"] = {"Buamu"},
["boy"] = {"Bodo (Central African Republic)"},
["boz"] = {"Tiéyaxo Bozo"},
["bpa"] = {"Daakaka"},
["bpc"] = {"Mbuk"},
["bpd"] = {"Banda-Banda"},
["bpe"] = {"Bauni"},
["bpg"] = {"Bonggo"},
["bph"] = {"Botlikh"},
["bpi"] = {"Bagupi"},
["bpj"] = {"Binji"},
["bpk"] = {"Orowe", "'Ôrôê"},
["bpl"] = {"Broome Pearling Lugger Pidgin"},
["bpm"] = {"Biyom"},
["bpn"] = {"Dzao Min"},
["bpo"] = {"Anasi"},
["bpp"] = {"Kaure"},
["bpq"] = {"Banda Malay"},
["bpr"] = {"Koronadal Blaan"},
["bps"] = {"Sarangani Blaan"},
["bpt"] = {"Barrow Point"},
["bpu"] = {"Bongu"},
["bpv"] = {"Bian Marind"},
["bpw"] = {"Bo (Papua New Guinea)"},
["bpx"] = {"Palya Bareli"},
["bpy"] = {"Bishnupriya"},
["bpz"] = {"Bilba"},
["bqa"] = {"Tchumbuli"},
["bqb"] = {"Bagusa"},
["bqc"] = {"Boko (Benin)", "Boo"},
["bqd"] = {"Bung"},
["bqf"] = {"Baga Kaloum"},
["bqg"] = {"Bago-Kusuntu"},
["bqh"] = {"Baima"},
["bqi"] = {"Bakhtiari"},
["bqj"] = {"Bandial"},
["bqk"] = {"Banda-Mbrès"},
["bql"] = {"Bilakura"},
["bqm"] = {"Wumboko"},
["bqn"] = {"Bulgarian Sign Language"},
["bqo"] = {"Balo"},
["bqp"] = {"Busa"},
["bqq"] = {"Biritai"},
["bqr"] = {"Burusu"},
["bqs"] = {"Bosngun"},
["bqt"] = {"Bamukumbit"},
["bqu"] = {"Boguru"},
["bqv"] = {"Koro Wachi", "Begbere-Ejar"},
["bqw"] = {"Buru (Nigeria)"},
["bqx"] = {"Baangi"},
["bqy"] = {"Bengkala Sign Language"},
["bqz"] = {"Bakaka"},
["bra"] = {"Braj"},
["brb"] = {"Brao", "Lave"},
["brc"] = {"Berbice Creole Dutch"},
["brd"] = {"Baraamu"},
["brf"] = {"Bira"},
["brg"] = {"Baure"},
["brh"] = {"Brahui"},
["bri"] = {"Mokpwe"},
["brj"] = {"Bieria"},
["brk"] = {"Birked"},
["brl"] = {"Birwa"},
["brm"] = {"Barambu"},
["brn"] = {"Boruca"},
["bro"] = {"Brokkat"},
["brp"] = {"Barapasi"},
["brq"] = {"Breri"},
["brr"] = {"Birao"},
["brs"] = {"Baras"},
["brt"] = {"Bitare"},
["bru"] = {"Eastern Bru"},
["brv"] = {"Western Bru"},
["brw"] = {"Bellari"},
["brx"] = {"Bodo (India)"},
["bry"] = {"Burui"},
["brz"] = {"Bilbil"},
["bsa"] = {"Abinomn"},
["bsb"] = {"Brunei Bisaya"},
["bsc"] = {"Bassari", "Oniyan"},
["bse"] = {"Wushi"},
["bsf"] = {"Bauchi"},
["bsg"] = {"Bashkardi"},
["bsh"] = {"Kati"},
["bsi"] = {"Bassossi"},
["bsj"] = {"Bangwinji"},
["bsk"] = {"Burushaski"},
["bsl"] = {"Basa-Gumna"},
["bsm"] = {"Busami"},
["bsn"] = {"Barasana-Eduria"},
["bso"] = {"Buso"},
["bsp"] = {"Baga Sitemu"},
["bsq"] = {"Bassa"},
["bsr"] = {"Bassa-Kontagora"},
["bss"] = {"Akoose"},
["bst"] = {"Basketo"},
["bsu"] = {"Bahonsuai"},
["bsv"] = {"Baga Sobané"},
["bsw"] = {"Baiso"},
["bsx"] = {"Yangkam"},
["bsy"] = {"Sabah Bisaya"},
["bta"] = {"Bata"},
["btc"] = {"Bati (Cameroon)"},
["btd"] = {"Batak Dairi"},
["bte"] = {"Gamo-Ningi"},
["btf"] = {"Birgit"},
["btg"] = {"Gagnoa Bété"},
["bth"] = {"Biatah Bidayuh"},
["bti"] = {"Burate"},
["btj"] = {"Bacanese Malay"},
["btk"] = {"Batak languages"},
["btm"] = {"Batak Mandailing"},
["btn"] = {"Ratagnon"},
["bto"] = {"Rinconada Bikol"},
["btp"] = {"Budibud"},
["btq"] = {"Batek"},
["btr"] = {"Baetora"},
["bts"] = {"Batak Simalungun"},
["btt"] = {"Bete-Bendi"},
["btu"] = {"Batu"},
["btv"] = {"Bateri"},
["btw"] = {"Butuanon"},
["btx"] = {"Batak Karo"},
["bty"] = {"Bobot"},
["btz"] = {"Batak Alas-Kluet"},
["bua"] = {"Buriat"},
["bub"] = {"Bua"},
["buc"] = {"Bushi"},
["bud"] = {"Ntcham"},
["bue"] = {"Beothuk"},
["buf"] = {"Bushoong"},
["bug"] = {"Buginese"},
["buh"] = {"Younuo Bunu"},
["bui"] = {"Bongili"},
["buj"] = {"Basa-Gurmana"},
["buk"] = {"Bugawac"},
["bum"] = {"Bulu (Cameroon)"},
["bun"] = {"Sherbro"},
["buo"] = {"Terei"},
["bup"] = {"Busoa"},
["buq"] = {"Brem"},
["bus"] = {"Bokobaru"},
["but"] = {"Bungain"},
["buu"] = {"Budu"},
["buv"] = {"Bun"},
["buw"] = {"Bubi"},
["bux"] = {"Boghom"},
["buy"] = {"Bullom So"},
["buz"] = {"Bukwen"},
["bva"] = {"Barein"},
["bvb"] = {"Bube"},
["bvc"] = {"Baelelea"},
["bvd"] = {"Baeggu"},
["bve"] = {"Berau Malay"},
["bvf"] = {"Boor"},
["bvg"] = {"Bonkeng"},
["bvh"] = {"Bure"},
["bvi"] = {"Belanda Viri"},
["bvj"] = {"Baan"},
["bvk"] = {"Bukat"},
["bvl"] = {"Bolivian Sign Language"},
["bvm"] = {"Bamunka"},
["bvn"] = {"Buna"},
["bvo"] = {"Bolgo"},
["bvp"] = {"Bumang"},
["bvq"] = {"Birri"},
["bvr"] = {"Burarra"},
["bvt"] = {"Bati (Indonesia)"},
["bvu"] = {"Bukit Malay"},
["bvv"] = {"Baniva"},
["bvw"] = {"Boga"},
["bvx"] = {"Dibole"},
["bvy"] = {"Baybayanon"},
["bvz"] = {"Bauzi"},
["bwa"] = {"Bwatoo"},
["bwb"] = {"Namosi-Naitasiri-Serua"},
["bwc"] = {"Bwile"},
["bwd"] = {"Bwaidoka"},
["bwe"] = {"Bwe Karen"},
["bwf"] = {"Boselewa"},
["bwg"] = {"Barwe"},
["bwh"] = {"Bishuo"},
["bwi"] = {"Baniwa"},
["bwj"] = {"Láá Láá Bwamu"},
["bwk"] = {"Bauwaki"},
["bwl"] = {"Bwela"},
["bwm"] = {"Biwat"},
["bwn"] = {"Wunai Bunu"},
["bwo"] = {"Boro (Ethiopia)", "Borna (Ethiopia)"},
["bwp"] = {"Mandobo Bawah"},
["bwq"] = {"Southern Bobo Madaré"},
["bwr"] = {"Bura-Pabir"},
["bws"] = {"Bomboma"},
["bwt"] = {"Bafaw-Balong"},
["bwu"] = {"Buli (Ghana)"},
["bww"] = {"Bwa"},
["bwx"] = {"Bu-Nao Bunu"},
["bwy"] = {"Cwi Bwamu"},
["bwz"] = {"Bwisi"},
["bxa"] = {"Tairaha"},
["bxb"] = {"Belanda Bor"},
["bxc"] = {"Molengue"},
["bxd"] = {"Pela"},
["bxe"] = {"Birale"},
["bxf"] = {"Bilur", "Minigir"},
["bxg"] = {"Bangala"},
["bxh"] = {"Buhutu"},
["bxi"] = {"Pirlatapa"},
["bxj"] = {"Bayungu"},
["bxk"] = {"Bukusu", "Lubukusu"},
["bxl"] = {"Jalkunan"},
["bxm"] = {"Mongolia Buriat"},
["bxn"] = {"Burduna"},
["bxo"] = {"Barikanchi"},
["bxp"] = {"Bebil"},
["bxq"] = {"Beele"},
["bxr"] = {"Russia Buriat"},
["bxs"] = {"Busam"},
["bxu"] = {"China Buriat"},
["bxv"] = {"Berakou"},
["bxw"] = {"Bankagooma"},
["bxz"] = {"Binahari"},
["bya"] = {"Batak"},
["byb"] = {"Bikya"},
["byc"] = {"Ubaghara"},
["byd"] = {"Benyadu'"},
["bye"] = {"Pouye"},
["byf"] = {"Bete"},
["byg"] = {"Baygo"},
["byh"] = {"Bhujel"},
["byi"] = {"Buyu"},
["byj"] = {"Bina (Nigeria)"},
["byk"] = {"Biao"},
["byl"] = {"Bayono"},
["bym"] = {"Bidjara"},
["byn"] = {"Bilin", "Blin"},
["byo"] = {"Biyo"},
["byp"] = {"Bumaji"},
["byq"] = {"Basay"},
["byr"] = {"Baruya", "Yipma"},
["bys"] = {"Burak"},
["byt"] = {"Berti"},
["byv"] = {"Medumba"},
["byw"] = {"Belhariya"},
["byx"] = {"Qaqet"},
["byz"] = {"Banaro"},
["bza"] = {"Bandi"},
["bzb"] = {"Andio"},
["bzc"] = {"Southern Betsimisaraka Malagasy"},
["bzd"] = {"Bribri"},
["bze"] = {"Jenaama Bozo"},
["bzf"] = {"Boikin"},
["bzg"] = {"Babuza"},
["bzh"] = {"Mapos Buang"},
["bzi"] = {"Bisu"},
["bzj"] = {"Belize Kriol English"},
["bzk"] = {"Nicaragua Creole English"},
["bzl"] = {"Boano (Sulawesi)"},
["bzm"] = {"Bolondo"},
["bzn"] = {"Boano (Maluku)"},
["bzo"] = {"Bozaba"},
["bzp"] = {"Kemberano"},
["bzq"] = {"Buli (Indonesia)"},
["bzr"] = {"Biri"},
["bzs"] = {"Brazilian Sign Language"},
["bzt"] = {"Brithenig"},
["bzu"] = {"Burmeso"},
["bzv"] = {"Naami"},
["bzw"] = {"Basa (Nigeria)"},
["bzx"] = {"Kɛlɛngaxo Bozo"},
["bzy"] = {"Obanliku"},
["bzz"] = {"Evant"},
["caa"] = {"Chortí"},
["cab"] = {"Garifuna"},
["cac"] = {"Chuj"},
["cad"] = {"Caddo"},
["cae"] = {"Lehar", "Laalaa"},
["caf"] = {"Southern Carrier"},
["cag"] = {"Nivaclé"},
["cah"] = {"Cahuarano"},
["cai"] = {"Central American Indian languages"},
["caj"] = {"Chané"},
["cak"] = {"Kaqchikel", "Cakchiquel"},
["cal"] = {"Carolinian"},
["cam"] = {"Cemuhî"},
["can"] = {"Chambri"},
["cao"] = {"Chácobo"},
["cap"] = {"Chipaya"},
["caq"] = {"Car Nicobarese"},
["car"] = {"Galibi Carib"},
["cas"] = {"Tsimané"},
["cau"] = {"Caucasian languages"},
["cav"] = {"Cavineña"},
["caw"] = {"Callawalla"},
["cax"] = {"Chiquitano"},
["cay"] = {"Cayuga"},
["caz"] = {"Canichana"},
["cba"] = {"Chibchan languages"},
["cbb"] = {"Cabiyarí"},
["cbc"] = {"Carapana"},
["cbd"] = {"Carijona"},
["cbg"] = {"Chimila"},
["cbi"] = {"Chachi"},
["cbj"] = {"Ede Cabe"},
["cbk"] = {"Chavacano"},
["cbl"] = {"Bualkhaw Chin"},
["cbn"] = {"Nyahkur"},
["cbo"] = {"Izora"},
["cbq"] = {"Tsucuba", "Cuba"},
["cbr"] = {"Cashibo-Cacataibo"},
["cbs"] = {"Cashinahua"},
["cbt"] = {"Chayahuita"},
["cbu"] = {"Candoshi-Shapra"},
["cbv"] = {"Cacua"},
["cbw"] = {"Kinabalian"},
["cby"] = {"Carabayo"},
["ccc"] = {"Chamicuro"},
["ccd"] = {"Cafundo Creole"},
["cce"] = {"Chopi"},
["ccg"] = {"Samba Daka"},
["cch"] = {"Atsam"},
["ccj"] = {"Kasanga"},
["ccl"] = {"Cutchi-Swahili"},
["ccm"] = {"Malaccan Creole Malay"},
["ccn"] = {"North Caucasian languages"},
["cco"] = {"Comaltepec Chinantec"},
["ccp"] = {"Chakma"},
["ccr"] = {"Cacaopera"},
["ccs"] = {"South Caucasian languages"},
["cda"] = {"Choni"},
["cdc"] = {"Chadic languages"},
["cdd"] = {"Caddoan languages"},
["cde"] = {"Chenchu"},
["cdf"] = {"Chiru"},
["cdh"] = {"Chambeali"},
["cdi"] = {"Chodri"},
["cdj"] = {"Churahi"},
["cdm"] = {"Chepang"},
["cdn"] = {"Chaudangsi"},
["cdo"] = {"Min Dong Chinese"},
["cdr"] = {"Cinda-Regi-Tiyal"},
["cds"] = {"Chadian Sign Language"},
["cdy"] = {"Chadong"},
["cdz"] = {"Koda"},
["cea"] = {"Lower Chehalis"},
["ceb"] = {"Cebuano"},
["ceg"] = {"Chamacoco"},
["cek"] = {"Eastern Khumi Chin"},
["cel"] = {"Celtic languages"},
["cen"] = {"Cen"},
["cet"] = {"Centúúm"},
["cey"] = {"Ekai Chin"},
["cfa"] = {"Dijim-Bwilim"},
["cfd"] = {"Cara"},
["cfg"] = {"Como Karim"},
["cfm"] = {"Falam Chin"},
["cga"] = {"Changriwa"},
["cgc"] = {"Kagayanen"},
["cgg"] = {"Chiga"},
["cgk"] = {"Chocangacakha"},
["chb"] = {"Chibcha"},
["chc"] = {"Catawba"},
["chd"] = {"Highland Oaxaca Chontal"},
["chf"] = {"Tabasco Chontal"},
["chg"] = {"Chagatai"},
["chh"] = {"Chinook"},
["chj"] = {"Ojitlán Chinantec"},
["chk"] = {"Chuukese"},
["chl"] = {"Cahuilla"},
["chm"] = {"Mari (Russia)"},
["chn"] = {"Chinook jargon"},
["cho"] = {"Choctaw"},
["chp"] = {"Chipewyan", "Dene Suline"},
["chq"] = {"Quiotepec Chinantec"},
["chr"] = {"Cherokee"},
["cht"] = {"Cholón"},
["chw"] = {"Chuwabu"},
["chx"] = {"Chantyal"},
["chy"] = {"Cheyenne"},
["chz"] = {"Ozumacín Chinantec"},
["cia"] = {"Cia-Cia"},
["cib"] = {"Ci Gbe"},
["cic"] = {"Chickasaw"},
["cid"] = {"Chimariko"},
["cie"] = {"Cineni"},
["cih"] = {"Chinali"},
["cik"] = {"Chitkuli Kinnauri"},
["cim"] = {"Cimbrian"},
["cin"] = {"Cinta Larga"},
["cip"] = {"Chiapanec"},
["cir"] = {"Tiri", "Haméa", "Méa"},
["ciw"] = {"Chippewa"},
["ciy"] = {"Chaima"},
["cja"] = {"Western Cham"},
["cje"] = {"Chru"},
["cjh"] = {"Upper Chehalis"},
["cji"] = {"Chamalal"},
["cjk"] = {"Chokwe"},
["cjm"] = {"Eastern Cham"},
["cjn"] = {"Chenapian"},
["cjo"] = {"Ashéninka Pajonal"},
["cjp"] = {"Cabécar"},
["cjs"] = {"Shor"},
["cjv"] = {"Chuave"},
["cjy"] = {"Jinyu Chinese"},
["ckb"] = {"Central Kurdish"},
["ckh"] = {"Chak"},
["ckl"] = {"Cibak"},
["ckm"] = {"Chakavian"},
["ckn"] = {"Kaang Chin"},
["cko"] = {"Anufo"},
["ckq"] = {"Kajakse"},
["ckr"] = {"Kairak"},
["cks"] = {"Tayo"},
["ckt"] = {"Chukot"},
["cku"] = {"Koasati"},
["ckv"] = {"Kavalan"},
["ckx"] = {"Caka"},
["cky"] = {"Cakfem-Mushere"},
["ckz"] = {"Cakchiquel-Quiché Mixed Language"},
["cla"] = {"Ron"},
["clc"] = {"Chilcotin"},
["cld"] = {"Chaldean Neo-Aramaic"},
["cle"] = {"Lealao Chinantec"},
["clh"] = {"Chilisso"},
["cli"] = {"Chakali"},
["clj"] = {"Laitu Chin"},
["clk"] = {"Idu-Mishmi"},
["cll"] = {"Chala"},
["clm"] = {"Clallam"},
["clo"] = {"Lowland Oaxaca Chontal"},
["clt"] = {"Lautu Chin"},
["clu"] = {"Caluyanun"},
["clw"] = {"Chulym"},
["cly"] = {"Eastern Highland Chatino"},
["cma"] = {"Maa"},
["cmc"] = {"Chamic languages"},
["cme"] = {"Cerma"},
["cmg"] = {"Classical Mongolian"},
["cmi"] = {"Emberá-Chamí"},
["cml"] = {"Campalagian"},
["cmm"] = {"Michigamea"},
["cmn"] = {"Mandarin Chinese"},
["cmo"] = {"Central Mnong"},
["cmr"] = {"Mro-Khimi Chin"},
["cms"] = {"Messapic"},
["cmt"] = {"Camtho"},
["cna"] = {"Changthang"},
["cnb"] = {"Chinbon Chin"},
["cnc"] = {"Côông"},
["cng"] = {"Northern Qiang"},
["cnh"] = {"Hakha Chin", "Haka Chin"},
["cni"] = {"Asháninka"},
["cnk"] = {"Khumi Chin"},
["cnl"] = {"Lalana Chinantec"},
["cno"] = {"Con"},
["cnp"] = {"Northern Ping Chinese", "Northern Pinghua"},
["cnq"] = {"Chung"},
["cnr"] = {"Montenegrin"},
["cns"] = {"Central Asmat"},
["cnt"] = {"Tepetotutla Chinantec"},
["cnu"] = {"Chenoua"},
["cnw"] = {"Ngawn Chin"},
["cnx"] = {"Middle Cornish"},
["coa"] = {"Cocos Islands Malay"},
["cob"] = {"Chicomuceltec"},
["coc"] = {"Cocopa"},
["cod"] = {"Cocama-Cocamilla"},
["coe"] = {"Koreguaje"},
["cof"] = {"Colorado"},
["cog"] = {"Chong"},
["coh"] = {"Chonyi-Dzihana-Kauma", "Chichonyi-Chidzihana-Chikauma"},
["coj"] = {"Cochimi"},
["cok"] = {"Santa Teresa Cora"},
["col"] = {"Columbia-Wenatchi"},
["com"] = {"Comanche"},
["con"] = {"Cofán"},
["coo"] = {"Comox"},
["cop"] = {"Coptic"},
["coq"] = {"Coquille"},
["cot"] = {"Caquinte"},
["cou"] = {"Wamey"},
["cov"] = {"Cao Miao"},
["cow"] = {"Cowlitz"},
["cox"] = {"Nanti"},
["coz"] = {"Chochotec"},
["cpa"] = {"Palantla Chinantec"},
["cpb"] = {"Ucayali-Yurúa Ashéninka"},
["cpc"] = {"Ajyíninka Apurucayali"},
["cpe"] = {"English-based creoles and pidgins"},
["cpf"] = {"French-based creoles and pidgins"},
["cpg"] = {"Cappadocian Greek"},
["cpi"] = {"Chinese Pidgin English"},
["cpn"] = {"Cherepon"},
["cpo"] = {"Kpeego"},
["cpp"] = {"Portuguese-based creoles and pidgins"},
["cps"] = {"Capiznon"},
["cpu"] = {"Pichis Ashéninka"},
["cpx"] = {"Pu-Xian Chinese"},
["cpy"] = {"South Ucayali Ashéninka"},
["cqd"] = {"Chuanqiandian Cluster Miao"},
["cra"] = {"Chara"},
["crb"] = {"Island Carib"},
["crc"] = {"Lonwolwol"},
["crd"] = {"Coeur d'Alene"},
["crf"] = {"Caramanta"},
["crg"] = {"Michif"},
["crh"] = {"Crimean Tatar", "Crimean Turkish"},
["cri"] = {"Sãotomense"},
["crj"] = {"Southern East Cree"},
["crk"] = {"Plains Cree"},
["crl"] = {"Northern East Cree"},
["crm"] = {"Moose Cree"},
["crn"] = {"El Nayar Cora"},
["cro"] = {"Crow"},
["crp"] = {"Creoles and pidgins"},
["crq"] = {"Iyo'wujwa Chorote"},
["crr"] = {"Carolina Algonquian"},
["crs"] = {"Seselwa Creole French"},
["crt"] = {"Iyojwa'ja Chorote"},
["crv"] = {"Chaura"},
["crw"] = {"Chrau"},
["crx"] = {"Carrier"},
["cry"] = {"Cori"},
["crz"] = {"Cruzeño"},
["csa"] = {"Chiltepec Chinantec"},
["csb"] = {"Kashubian"},
["csc"] = {"Catalan Sign Language", "Lengua de señas catalana", "Llengua de Signes Catalana"},
["csd"] = {"Chiangmai Sign Language"},
["cse"] = {"Czech Sign Language"},
["csf"] = {"Cuba Sign Language"},
["csg"] = {"Chilean Sign Language"},
["csh"] = {"Asho Chin"},
["csi"] = {"Coast Miwok"},
["csj"] = {"Songlai Chin"},
["csk"] = {"Jola-Kasa"},
["csl"] = {"Chinese Sign Language"},
["csm"] = {"Central Sierra Miwok"},
["csn"] = {"Colombian Sign Language"},
["cso"] = {"Sochiapam Chinantec", "Sochiapan Chinantec"},
["csp"] = {"Southern Ping Chinese", "Southern Pinghua"},
["csq"] = {"Croatia Sign Language"},
["csr"] = {"Costa Rican Sign Language"},
["css"] = {"Southern Ohlone"},
["cst"] = {"Northern Ohlone"},
["csu"] = {"Central Sudanic languages"},
["csv"] = {"Sumtu Chin"},
["csw"] = {"Swampy Cree"},
["csx"] = {"Cambodian Sign Language"},
["csy"] = {"Siyin Chin"},
["csz"] = {"Coos"},
["cta"] = {"Tataltepec Chatino"},
["ctc"] = {"Chetco"},
["ctd"] = {"Tedim Chin"},
["cte"] = {"Tepinapa Chinantec"},
["ctg"] = {"Chittagonian"},
["cth"] = {"Thaiphum Chin"},
["ctl"] = {"Tlacoatzintepec Chinantec"},
["ctm"] = {"Chitimacha"},
["ctn"] = {"Chhintange"},
["cto"] = {"Emberá-Catío"},
["ctp"] = {"Western Highland Chatino"},
["cts"] = {"Northern Catanduanes Bikol"},
["ctt"] = {"Wayanad Chetti"},
["ctu"] = {"Chol"},
["cty"] = {"Moundadan Chetty"},
["ctz"] = {"Zacatepec Chatino"},
["cua"] = {"Cua"},
["cub"] = {"Cubeo"},
["cuc"] = {"Usila Chinantec"},
["cuh"] = {"Chuka", "Gichuka"},
["cui"] = {"Cuiba"},
["cuj"] = {"Mashco Piro"},
["cuk"] = {"San Blas Kuna"},
["cul"] = {"Culina", "Kulina"},
["cuo"] = {"Cumanagoto"},
["cup"] = {"Cupeño"},
["cuq"] = {"Cun"},
["cur"] = {"Chhulung"},
["cus"] = {"Cushitic languages"},
["cut"] = {"Teutila Cuicatec"},
["cuu"] = {"Tai Ya"},
["cuv"] = {"Cuvok"},
["cuw"] = {"Chukwa"},
["cux"] = {"Tepeuxila Cuicatec"},
["cuy"] = {"Cuitlatec"},
["cvg"] = {"Chug"},
["cvn"] = {"Valle Nacional Chinantec"},
["cwa"] = {"Kabwa"},
["cwb"] = {"Maindo"},
["cwd"] = {"Woods Cree"},
["cwe"] = {"Kwere"},
["cwg"] = {"Chewong", "Cheq Wong"},
["cwt"] = {"Kuwaataay"},
["cya"] = {"Nopala Chatino"},
["cyb"] = {"Cayubaba"},
["cyo"] = {"Cuyonon"},
["czh"] = {"Huizhou Chinese"},
["czk"] = {"Knaanic"},
["czn"] = {"Zenzontepec Chatino"},
["czo"] = {"Min Zhong Chinese"},
["czt"] = {"Zotung Chin"},
["daa"] = {"Dangaléat"},
["dac"] = {"Dambi"},
["dad"] = {"Marik"},
["dae"] = {"Duupa"},
["dag"] = {"Dagbani"},
["dah"] = {"Gwahatike"},
["dai"] = {"Day"},
["daj"] = {"Dar Fur Daju"},
["dak"] = {"Dakota"},
["dal"] = {"Dahalo"},
["dam"] = {"Damakawa"},
["dao"] = {"Daai Chin"},
["daq"] = {"Dandami Maria"},
["dar"] = {"Dargwa"},
["das"] = {"Daho-Doo"},
["dau"] = {"Dar Sila Daju"},
["dav"] = {"Taita", "Dawida"},
["daw"] = {"Davawenyo"},
["dax"] = {"Dayi"},
["day"] = {"Land Dayak languages"},
["daz"] = {"Dao"},
["dba"] = {"Bangime"},
["dbb"] = {"Deno"},
["dbd"] = {"Dadiya"},
["dbe"] = {"Dabe"},
["dbf"] = {"Edopi"},
["dbg"] = {"Dogul Dom Dogon"},
["dbi"] = {"Doka"},
["dbj"] = {"Ida'an"},
["dbl"] = {"Dyirbal"},
["dbm"] = {"Duguri"},
["dbn"] = {"Duriankere"},
["dbo"] = {"Dulbu"},
["dbp"] = {"Duwai"},
["dbq"] = {"Daba"},
["dbr"] = {"Dabarre"},
["dbt"] = {"Ben Tey Dogon"},
["dbu"] = {"Bondum Dom Dogon"},
["dbv"] = {"Dungu"},
["dbw"] = {"Bankan Tey Dogon"},
["dby"] = {"Dibiyaso"},
["dcc"] = {"Deccan"},
["dcr"] = {"Negerhollands"},
["dda"] = {"Dadi Dadi"},
["ddd"] = {"Dongotono"},
["dde"] = {"Doondo"},
["ddg"] = {"Fataluku"},
["ddi"] = {"West Goodenough"},
["ddj"] = {"Jaru"},
["ddn"] = {"Dendi (Benin)"},
["ddo"] = {"Dido"},
["ddr"] = {"Dhudhuroa"},
["dds"] = {"Donno So Dogon"},
["ddw"] = {"Dawera-Daweloor"},
["dec"] = {"Dagik"},
["ded"] = {"Dedua"},
["dee"] = {"Dewoin"},
["def"] = {"Dezfuli"},
["deg"] = {"Degema"},
["deh"] = {"Dehwari"},
["dei"] = {"Demisa"},
["dek"] = {"Dek"},
["del"] = {"Delaware"},
["dem"] = {"Dem"},
["den"] = {"Slave (Athapascan)"},
["dep"] = {"Pidgin Delaware"},
["deq"] = {"Dendi (Central African Republic)"},
["der"] = {"Deori"},
["des"] = {"Desano"},
["dev"] = {"Domung"},
["dez"] = {"Dengese"},
["dga"] = {"Southern Dagaare"},
["dgb"] = {"Bunoge Dogon"},
["dgc"] = {"Casiguran Dumagat Agta"},
["dgd"] = {"Dagaari Dioula"},
["dge"] = {"Degenan"},
["dgg"] = {"Doga"},
["dgh"] = {"Dghwede"},
["dgi"] = {"Northern Dagara"},
["dgk"] = {"Dagba"},
["dgl"] = {"Andaandi", "Dongolawi"},
["dgn"] = {"Dagoman"},
["dgo"] = {"Dogri (individual language)"},
["dgr"] = {"Dogrib", "Tłı̨chǫ"},
["dgs"] = {"Dogoso"},
["dgt"] = {"Ndra'ngith"},
["dgw"] = {"Daungwurrung"},
["dgx"] = {"Doghoro"},
["dgz"] = {"Daga"},
["dhd"] = {"Dhundari"},
["dhg"] = {"Dhangu-Djangu", "Dhangu", "Djangu"},
["dhi"] = {"Dhimal"},
["dhl"] = {"Dhalandji"},
["dhm"] = {"Zemba"},
["dhn"] = {"Dhanki"},
["dho"] = {"Dhodia"},
["dhr"] = {"Dhargari"},
["dhs"] = {"Dhaiso"},
["dhu"] = {"Dhurga"},
["dhv"] = {"Dehu", "Drehu"},
["dhw"] = {"Dhanwar (Nepal)"},
["dhx"] = {"Dhungaloo"},
["dia"] = {"Dia"},
["dib"] = {"South Central Dinka"},
["dic"] = {"Lakota Dida"},
["did"] = {"Didinga"},
["dif"] = {"Dieri", "Diyari"},
["dig"] = {"Digo", "Chidigo"},
["dih"] = {"Kumiai"},
["dii"] = {"Dimbong"},
["dij"] = {"Dai"},
["dik"] = {"Southwestern Dinka"},
["dil"] = {"Dilling"},
["dim"] = {"Dime"},
["din"] = {"Dinka"},
["dio"] = {"Dibo"},
["dip"] = {"Northeastern Dinka"},
["diq"] = {"Dimli (individual language)"},
["dir"] = {"Dirim"},
["dis"] = {"Dimasa"},
["diu"] = {"Diriku"},
["diw"] = {"Northwestern Dinka"},
["dix"] = {"Dixon Reef"},
["diy"] = {"Diuwe"},
["diz"] = {"Ding"},
["dja"] = {"Djadjawurrung"},
["djb"] = {"Djinba"},
["djc"] = {"Dar Daju Daju"},
["djd"] = {"Djamindjung", "Ngaliwurru"},
["dje"] = {"Zarma"},
["djf"] = {"Djangun"},
["dji"] = {"Djinang"},
["djj"] = {"Djeebbana"},
["djk"] = {"Eastern Maroon Creole", "Businenge Tongo", "Nenge"},
["djm"] = {"Jamsay Dogon"},
["djn"] = {"Jawoyn", "Djauan"},
["djo"] = {"Jangkang"},
["djr"] = {"Djambarrpuyngu"},
["dju"] = {"Kapriman"},
["djw"] = {"Djawi"},
["dka"] = {"Dakpakha"},
["dkg"] = {"Kadung"},
["dkk"] = {"Dakka"},
["dkr"] = {"Kuijau"},
["dks"] = {"Southeastern Dinka"},
["dkx"] = {"Mazagway"},
["dlg"] = {"Dolgan"},
["dlk"] = {"Dahalik"},
["dlm"] = {"Dalmatian"},
["dln"] = {"Darlong"},
["dma"] = {"Duma"},
["dmb"] = {"Mombo Dogon"},
["dmc"] = {"Gavak"},
["dmd"] = {"Madhi Madhi"},
["dme"] = {"Dugwor"},
["dmf"] = {"Medefaidrin"},
["dmg"] = {"Upper Kinabatangan"},
["dmk"] = {"Domaaki"},
["dml"] = {"Dameli"},
["dmm"] = {"Dama"},
["dmn"] = {"Mande languages"},
["dmo"] = {"Kemedzung"},
["dmr"] = {"East Damar"},
["dms"] = {"Dampelas"},
["dmu"] = {"Dubu", "Tebi"},
["dmv"] = {"Dumpas"},
["dmw"] = {"Mudburra"},
["dmx"] = {"Dema"},
["dmy"] = {"Demta", "Sowari"},
["dna"] = {"Upper Grand Valley Dani"},
["dnd"] = {"Daonda"},
["dne"] = {"Ndendeule"},
["dng"] = {"Dungan"},
["dni"] = {"Lower Grand Valley Dani"},
["dnj"] = {"Dan"},
["dnk"] = {"Dengka"},
["dnn"] = {"Dzùùngoo"},
["dno"] = {"Ndrulo", "Northern Lendu"},
["dnr"] = {"Danaru"},
["dnt"] = {"Mid Grand Valley Dani"},
["dnu"] = {"Danau"},
["dnv"] = {"Danu"},
["dnw"] = {"Western Dani"},
["dny"] = {"Dení"},
["doa"] = {"Dom"},
["dob"] = {"Dobu"},
["doc"] = {"Northern Dong"},
["doe"] = {"Doe"},
["dof"] = {"Domu"},
["doh"] = {"Dong"},
["doi"] = {"Dogri (macrolanguage)"},
["dok"] = {"Dondo"},
["dol"] = {"Doso"},
["don"] = {"Toura (Papua New Guinea)"},
["doo"] = {"Dongo"},
["dop"] = {"Lukpa"},
["doq"] = {"Dominican Sign Language"},
["dor"] = {"Dori'o"},
["dos"] = {"Dogosé"},
["dot"] = {"Dass"},
["dov"] = {"Dombe"},
["dow"] = {"Doyayo"},
["dox"] = {"Bussa"},
["doy"] = {"Dompo"},
["doz"] = {"Dorze"},
["dpp"] = {"Papar"},
["dra"] = {"Dravidian languages"},
["drb"] = {"Dair"},
["drc"] = {"Minderico"},
["drd"] = {"Darmiya"},
["dre"] = {"Dolpo"},
["drg"] = {"Rungus"},
["dri"] = {"C'Lela"},
["drl"] = {"Paakantyi"},
["drn"] = {"West Damar"},
["dro"] = {"Daro-Matu Melanau"},
["drq"] = {"Dura"},
["drs"] = {"Gedeo"},
["drt"] = {"Drents"},
["dru"] = {"Rukai"},
["dry"] = {"Darai"},
["dsb"] = {"Lower Sorbian"},
["dse"] = {"Dutch Sign Language"},
["dsh"] = {"Daasanach"},
["dsi"] = {"Disa"},
["dsl"] = {"Danish Sign Language"},
["dsn"] = {"Dusner"},
["dso"] = {"Desiya"},
["dsq"] = {"Tadaksahak"},
["dsz"] = {"Mardin Sign Language"},
["dta"] = {"Daur"},
["dtb"] = {"Labuk-Kinabatangan Kadazan"},
["dtd"] = {"Ditidaht"},
["dth"] = {"Adithinngithigh"},
["dti"] = {"Ana Tinga Dogon"},
["dtk"] = {"Tene Kan Dogon"},
["dtm"] = {"Tomo Kan Dogon"},
["dtn"] = {"Daatsʼíin"},
["dto"] = {"Tommo So Dogon"},
["dtp"] = {"Kadazan Dusun", "Central Dusun"},
["dtr"] = {"Lotud"},
["dts"] = {"Toro So Dogon"},
["dtt"] = {"Toro Tegu Dogon"},
["dtu"] = {"Tebul Ure Dogon"},
["dty"] = {"Dotyali"},
["dua"] = {"Duala"},
["dub"] = {"Dubli"},
["duc"] = {"Duna"},
["due"] = {"Umiray Dumaget Agta"},
["duf"] = {"Dumbea", "Drubea"},
["dug"] = {"Duruma", "Chiduruma"},
["duh"] = {"Dungra Bhil"},
["dui"] = {"Dumun"},
["duk"] = {"Uyajitaya"},
["dul"] = {"Alabat Island Agta"},
["dum"] = {"Middle Dutch (ca. 1050-1350)"},
["dun"] = {"Dusun Deyah"},
["duo"] = {"Dupaninan Agta"},
["dup"] = {"Duano"},
["duq"] = {"Dusun Malang"},
["dur"] = {"Dii"},
["dus"] = {"Dumi"},
["duu"] = {"Drung"},
["duv"] = {"Duvle"},
["duw"] = {"Dusun Witu"},
["dux"] = {"Duungooma"},
["duy"] = {"Dicamay Agta"},
["duz"] = {"Duli-Gey"},
["dva"] = {"Duau"},
["dwa"] = {"Diri"},
["dwk"] = {"Dawik Kui"},
["dwr"] = {"Dawro"},
["dws"] = {"Dutton World Speedwords"},
["dwu"] = {"Dhuwal"},
["dww"] = {"Dawawa"},
["dwy"] = {"Dhuwaya"},
["dwz"] = {"Dewas Rai"},
["dya"] = {"Dyan"},
["dyb"] = {"Dyaberdyaber"},
["dyd"] = {"Dyugun"},
["dyg"] = {"Villa Viciosa Agta"},
["dyi"] = {"Djimini Senoufo"},
["dym"] = {"Yanda Dom Dogon"},
["dyn"] = {"Dyangadi", "Dhanggatti"},
["dyo"] = {"Jola-Fonyi"},
["dyu"] = {"Dyula"},
["dyy"] = {"Djabugay", "Dyaabugay"},
["dza"] = {"Tunzu"},
["dze"] = {"Djiwarli"},
["dzg"] = {"Dazaga"},
["dzl"] = {"Dzalakha"},
["dzn"] = {"Dzando"},
["eaa"] = {"Karenggapa"},
["ebc"] = {"Beginci"},
["ebg"] = {"Ebughu"},
["ebk"] = {"Eastern Bontok"},
["ebo"] = {"Teke-Ebo"},
["ebr"] = {"Ebrié"},
["ebu"] = {"Embu", "Kiembu"},
["ecr"] = {"Eteocretan"},
["ecs"] = {"Ecuadorian Sign Language"},
["ecy"] = {"Eteocypriot"},
["eee"] = {"E"},
["efa"] = {"Efai"},
["efe"] = {"Efe"},
["efi"] = {"Efik"},
["ega"] = {"Ega"},
["egl"] = {"Emilian"},
["egm"] = {"Benamanga"},
["ego"] = {"Eggon"},
["egx"] = {"Egyptian languages"},
["egy"] = {"Egyptian (Ancient)"},
["ehs"] = {"Miyakubo Sign Language"},
["ehu"] = {"Ehueun"},
["eip"] = {"Eipomek"},
["eit"] = {"Eitiep"},
["eiv"] = {"Askopan"},
["eja"] = {"Ejamat"},
["eka"] = {"Ekajuk"},
["eke"] = {"Ekit"},
["ekg"] = {"Ekari"},
["eki"] = {"Eki"},
["ekk"] = {"Standard Estonian"},
["ekl"] = {"Kol (Bangladesh)", "Kol"},
["ekm"] = {"Elip"},
["eko"] = {"Koti"},
["ekp"] = {"Ekpeye"},
["ekr"] = {"Yace"},
["eky"] = {"Eastern Kayah"},
["ele"] = {"Elepi"},
["elh"] = {"El Hugeirat"},
["eli"] = {"Nding"},
["elk"] = {"Elkei"},
["elm"] = {"Eleme"},
["elo"] = {"El Molo"},
["elu"] = {"Elu"},
["elx"] = {"Elamite"},
["ema"] = {"Emai-Iuleha-Ora"},
["emb"] = {"Embaloh"},
["eme"] = {"Emerillon"},
["emg"] = {"Eastern Meohang"},
["emi"] = {"Mussau-Emira"},
["emk"] = {"Eastern Maninkakan"},
["emm"] = {"Mamulique"},
["emn"] = {"Eman"},
["emp"] = {"Northern Emberá"},
["emq"] = {"Eastern Minyag"},
["ems"] = {"Pacific Gulf Yupik"},
["emu"] = {"Eastern Muria"},
["emw"] = {"Emplawas"},
["emx"] = {"Erromintxela"},
["emy"] = {"Epigraphic Mayan"},
["emz"] = {"Mbessa"},
["ena"] = {"Apali"},
["enb"] = {"Markweeta"},
["enc"] = {"En"},
["end"] = {"Ende"},
["enf"] = {"Forest Enets"},
["enh"] = {"Tundra Enets"},
["enl"] = {"Enlhet"},
["enm"] = {"Middle English (1100-1500)"},
["enn"] = {"Engenni"},
["eno"] = {"Enggano"},
["enq"] = {"Enga"},
["enr"] = {"Emumu", "Emem"},
["enu"] = {"Enu"},
["env"] = {"Enwan (Edo State)"},
["enw"] = {"Enwan (Akwa Ibom State)"},
["enx"] = {"Enxet"},
["eot"] = {"Beti (Côte d'Ivoire)"},
["epi"] = {"Epie"},
["era"] = {"Eravallan"},
["erg"] = {"Sie"},
["erh"] = {"Eruwa"},
["eri"] = {"Ogea"},
["erk"] = {"South Efate"},
["ero"] = {"Horpa"},
["err"] = {"Erre"},
["ers"] = {"Ersu"},
["ert"] = {"Eritai"},
["erw"] = {"Erokwanas"},
["ese"] = {"Ese Ejja"},
["esg"] = {"Aheri Gondi"},
["esh"] = {"Eshtehardi"},
["esi"] = {"North Alaskan Inupiatun"},
["esk"] = {"Northwest Alaska Inupiatun"},
["esl"] = {"Egypt Sign Language"},
["esm"] = {"Esuma"},
["esn"] = {"Salvadoran Sign Language"},
["eso"] = {"Estonian Sign Language"},
["esq"] = {"Esselen"},
["ess"] = {"Central Siberian Yupik"},
["esu"] = {"Central Yupik"},
["esx"] = {"Eskimo-Aleut languages"},
["esy"] = {"Eskayan"},
["etb"] = {"Etebi"},
["etc"] = {"Etchemin"},
["eth"] = {"Ethiopian Sign Language"},
["etn"] = {"Eton (Vanuatu)"},
["eto"] = {"Eton (Cameroon)"},
["etr"] = {"Edolo"},
["ets"] = {"Yekhee"},
["ett"] = {"Etruscan"},
["etu"] = {"Ejagham"},
["etx"] = {"Eten"},
["etz"] = {"Semimi"},
["euq"] = {"Basque (family)"},
["eve"] = {"Even"},
["evh"] = {"Uvbie"},
["evn"] = {"Evenki"},
["ewo"] = {"Ewondo"},
["ext"] = {"Extremaduran"},
["eya"] = {"Eyak"},
["eyo"] = {"Keiyo"},
["eza"] = {"Ezaa"},
["eze"] = {"Uzekwe"},
["faa"] = {"Fasu"},
["fab"] = {"Fa d'Ambu"},
["fad"] = {"Wagi"},
["faf"] = {"Fagani"},
["fag"] = {"Finongan"},
["fah"] = {"Baissa Fali"},
["fai"] = {"Faiwol"},
["faj"] = {"Faita"},
["fak"] = {"Fang (Cameroon)"},
["fal"] = {"South Fali"},
["fam"] = {"Fam"},
["fan"] = {"Fang (Equatorial Guinea)"},
["fap"] = {"Paloor"},
["far"] = {"Fataleka"},
["fat"] = {"Fanti"},
["fau"] = {"Fayu"},
["fax"] = {"Fala"},
["fay"] = {"Southwestern Fars"},
["faz"] = {"Northwestern Fars"},
["fbl"] = {"West Albay Bikol"},
["fcs"] = {"Quebec Sign Language"},
["fer"] = {"Feroge"},
["ffi"] = {"Foia Foia"},
["ffm"] = {"Maasina Fulfulde"},
["fgr"] = {"Fongoro"},
["fia"] = {"Nobiin"},
["fie"] = {"Fyer"},
["fif"] = {"Faifi"},
["fil"] = {"Filipino", "Pilipino"},
["fip"] = {"Fipa"},
["fir"] = {"Firan"},
["fit"] = {"Tornedalen Finnish", "Meänkieli"},
["fiu"] = {"Finno-Ugrian languages"},
["fiw"] = {"Fiwaga"},
["fkk"] = {"Kirya-Konzəl"},
["fkv"] = {"Kven Finnish"},
["fla"] = {"Kalispel-Pend d'Oreille"},
["flh"] = {"Foau"},
["fli"] = {"Fali"},
["fll"] = {"North Fali"},
["fln"] = {"Flinders Island"},
["flr"] = {"Fuliiru"},
["fly"] = {"Flaaitaal", "Tsotsitaal"},
["fmp"] = {"Fe'fe'"},
["fmu"] = {"Far Western Muria"},
["fnb"] = {"Fanbak"},
["fng"] = {"Fanagalo"},
["fni"] = {"Fania"},
["fod"] = {"Foodo"},
["foi"] = {"Foi"},
["fom"] = {"Foma"},
["fon"] = {"Fon"},
["for"] = {"Fore"},
["fos"] = {"Siraya"},
["fox"] = {"Formosan languages"},
["fpe"] = {"Fernando Po Creole English"},
["fqs"] = {"Fas"},
["frc"] = {"Cajun French"},
["frd"] = {"Fordata"},
["frk"] = {"Frankish"},
["frm"] = {"Middle French (ca. 1400-1600)"},
["fro"] = {"Old French (842-ca. 1400)"},
["frp"] = {"Arpitan", "Francoprovençal"},
["frq"] = {"Forak"},
["frr"] = {"Northern Frisian"},
["frs"] = {"Eastern Frisian"},
["frt"] = {"Fortsenal"},
["fse"] = {"Finnish Sign Language"},
["fsl"] = {"French Sign Language"},
["fss"] = {"Finland-Swedish Sign Language", "finlandssvenskt teckenspråk", "suomenruotsalainen viittomakieli"},
["fub"] = {"Adamawa Fulfulde"},
["fuc"] = {"Pulaar"},
["fud"] = {"East Futuna"},
["fue"] = {"Borgu Fulfulde"},
["fuf"] = {"Pular"},
["fuh"] = {"Western Niger Fulfulde"},
["fui"] = {"Bagirmi Fulfulde"},
["fuj"] = {"Ko"},
["fum"] = {"Fum"},
["fun"] = {"Fulniô"},
["fuq"] = {"Central-Eastern Niger Fulfulde"},
["fur"] = {"Friulian"},
["fut"] = {"Futuna-Aniwa"},
["fuu"] = {"Furu"},
["fuv"] = {"Nigerian Fulfulde"},
["fuy"] = {"Fuyug"},
["fvr"] = {"Fur"},
["fwa"] = {"Fwâi"},
["fwe"] = {"Fwe"},
["gaa"] = {"Ga"},
["gab"] = {"Gabri"},
["gac"] = {"Mixed Great Andamanese"},
["gad"] = {"Gaddang"},
["gae"] = {"Guarequena"},
["gaf"] = {"Gende"},
["gag"] = {"Gagauz"},
["gah"] = {"Alekano"},
["gai"] = {"Borei"},
["gaj"] = {"Gadsup"},
["gak"] = {"Gamkonora"},
["gal"] = {"Galolen"},
["gam"] = {"Kandawo"},
["gan"] = {"Gan Chinese"},
["gao"] = {"Gants"},
["gap"] = {"Gal"},
["gaq"] = {"Gata'"},
["gar"] = {"Galeya"},
["gas"] = {"Adiwasi Garasia"},
["gat"] = {"Kenati"},
["gau"] = {"Mudhili Gadaba"},
["gaw"] = {"Nobonob"},
["gax"] = {"Borana-Arsi-Guji Oromo"},
["gay"] = {"Gayo"},
["gaz"] = {"West Central Oromo"},
["gba"] = {"Gbaya (Central African Republic)"},
["gbb"] = {"Kaytetye"},
["gbd"] = {"Karajarri"},
["gbe"] = {"Niksek"},
["gbf"] = {"Gaikundi"},
["gbg"] = {"Gbanziri"},
["gbh"] = {"Defi Gbe"},
["gbi"] = {"Galela"},
["gbj"] = {"Bodo Gadaba"},
["gbk"] = {"Gaddi"},
["gbl"] = {"Gamit"},
["gbm"] = {"Garhwali"},
["gbn"] = {"Mo'da"},
["gbo"] = {"Northern Grebo"},
["gbp"] = {"Gbaya-Bossangoa"},
["gbq"] = {"Gbaya-Bozoum"},
["gbr"] = {"Gbagyi"},
["gbs"] = {"Gbesi Gbe"},
["gbu"] = {"Gagadu"},
["gbv"] = {"Gbanu"},
["gbw"] = {"Gabi-Gabi"},
["gbx"] = {"Eastern Xwla Gbe"},
["gby"] = {"Gbari"},
["gbz"] = {"Zoroastrian Dari"},
["gcc"] = {"Mali"},
["gcd"] = {"Ganggalida"},
["gce"] = {"Galice"},
["gcf"] = {"Guadeloupean Creole French"},
["gcl"] = {"Grenadian Creole English"},
["gcn"] = {"Gaina"},
["gcr"] = {"Guianese Creole French"},
["gct"] = {"Colonia Tovar German"},
["gda"] = {"Gade Lohar"},
["gdb"] = {"Pottangi Ollar Gadaba"},
["gdc"] = {"Gugu Badhun"},
["gdd"] = {"Gedaged"},
["gde"] = {"Gude"},
["gdf"] = {"Guduf-Gava"},
["gdg"] = {"Ga'dang"},
["gdh"] = {"Gadjerawang", "Gajirrabeng"},
["gdi"] = {"Gundi"},
["gdj"] = {"Gurdjar"},
["gdk"] = {"Gadang"},
["gdl"] = {"Dirasha"},
["gdm"] = {"Laal"},
["gdn"] = {"Umanakaina"},
["gdo"] = {"Ghodoberi"},
["gdq"] = {"Mehri"},
["gdr"] = {"Wipi"},
["gds"] = {"Ghandruk Sign Language"},
["gdt"] = {"Kungardutyi"},
["gdu"] = {"Gudu"},
["gdx"] = {"Godwari"},
["gea"] = {"Geruma"},
["geb"] = {"Kire"},
["gec"] = {"Gboloo Grebo"},
["ged"] = {"Gade"},
["gef"] = {"Gerai"},
["geg"] = {"Gengle"},
["geh"] = {"Hutterite German", "Hutterisch"},
["gei"] = {"Gebe"},
["gej"] = {"Gen"},
["gek"] = {"Ywom"},
["gel"] = {"ut-Ma'in"},
["gem"] = {"Germanic languages"},
["geq"] = {"Geme"},
["ges"] = {"Geser-Gorom"},
["gev"] = {"Eviya"},
["gew"] = {"Gera"},
["gex"] = {"Garre"},
["gey"] = {"Enya"},
["gez"] = {"Geez"},
["gfk"] = {"Patpatar"},
["gft"] = {"Gafat"},
["gga"] = {"Gao"},
["ggb"] = {"Gbii"},
["ggd"] = {"Gugadj"},
["gge"] = {"Gurr-goni"},
["ggg"] = {"Gurgula"},
["ggk"] = {"Kungarakany"},
["ggl"] = {"Ganglau"},
["ggt"] = {"Gitua"},
["ggu"] = {"Gagu", "Gban"},
["ggw"] = {"Gogodala"},
["gha"] = {"Ghadamès"},
["ghc"] = {"Hiberno-Scottish Gaelic"},
["ghe"] = {"Southern Ghale"},
["ghh"] = {"Northern Ghale"},
["ghk"] = {"Geko Karen"},
["ghl"] = {"Ghulfan"},
["ghn"] = {"Ghanongga"},
["gho"] = {"Ghomara"},
["ghr"] = {"Ghera"},
["ghs"] = {"Guhu-Samane"},
["ght"] = {"Kuke", "Kutang Ghale"},
["gia"] = {"Kija"},
["gib"] = {"Gibanawa"},
["gic"] = {"Gail"},
["gid"] = {"Gidar"},
["gie"] = {"Gaɓogbo", "Guébie"},
["gig"] = {"Goaria"},
["gih"] = {"Githabul"},
["gii"] = {"Girirra"},
["gil"] = {"Gilbertese"},
["gim"] = {"Gimi (Eastern Highlands)"},
["gin"] = {"Hinukh"},
["gip"] = {"Gimi (West New Britain)"},
["giq"] = {"Green Gelao"},
["gir"] = {"Red Gelao"},
["gis"] = {"North Giziga"},
["git"] = {"Gitxsan"},
["giu"] = {"Mulao"},
["giw"] = {"White Gelao"},
["gix"] = {"Gilima"},
["giy"] = {"Giyug"},
["giz"] = {"South Giziga"},
["gjk"] = {"Kachi Koli"},
["gjm"] = {"Gunditjmara"},
["gjn"] = {"Gonja"},
["gjr"] = {"Gurindji Kriol"},
["gju"] = {"Gujari"},
["gka"] = {"Guya"},
["gkd"] = {"Magɨ (Madang Province)"},
["gke"] = {"Ndai"},
["gkn"] = {"Gokana"},
["gko"] = {"Kok-Nar"},
["gkp"] = {"Guinea Kpelle"},
["gku"] = {"ǂUngkue"},
["glb"] = {"Belning"},
["glc"] = {"Bon Gula"},
["gld"] = {"Nanai"},
["glh"] = {"Northwest Pashai", "Northwest Pashayi"},
["glj"] = {"Gula Iro"},
["glk"] = {"Gilaki"},
["gll"] = {"Garlali"},
["glo"] = {"Galambu"},
["glr"] = {"Glaro-Twabo"},
["glu"] = {"Gula (Chad)"},
["glw"] = {"Glavda"},
["gly"] = {"Gule"},
["gma"] = {"Gambera"},
["gmb"] = {"Gula'alaa"},
["gmd"] = {"Mághdì"},
["gme"] = {"East Germanic languages"},
["gmg"] = {"Magɨyi"},
["gmh"] = {"Middle High German (ca. 1050-1500)"},
["gml"] = {"Middle Low German"},
["gmm"] = {"Gbaya-Mbodomo"},
["gmn"] = {"Gimnime"},
["gmq"] = {"North Germanic languages"},
["gmr"] = {"Mirning", "Mirniny"},
["gmu"] = {"Gumalu"},
["gmv"] = {"Gamo"},
["gmw"] = {"West Germanic languages"},
["gmx"] = {"Magoma"},
["gmy"] = {"Mycenaean Greek"},
["gmz"] = {"Mgbolizhia"},
["gna"] = {"Kaansa"},
["gnb"] = {"Gangte"},
["gnc"] = {"Guanche"},
["gnd"] = {"Zulgo-Gemzek"},
["gne"] = {"Ganang"},
["gng"] = {"Ngangam"},
["gnh"] = {"Lere"},
["gni"] = {"Gooniyandi"},
["gnj"] = {"Ngen"},
["gnk"] = {"ǁGana"},
["gnl"] = {"Gangulu"},
["gnm"] = {"Ginuman"},
["gnn"] = {"Gumatj"},
["gno"] = {"Northern Gondi"},
["gnq"] = {"Gana"},
["gnr"] = {"Gureng Gureng"},
["gnt"] = {"Guntai"},
["gnu"] = {"Gnau"},
["gnw"] = {"Western Bolivian Guaraní"},
["gnz"] = {"Ganzi"},
["goa"] = {"Guro"},
["gob"] = {"Playero"},
["goc"] = {"Gorakor"},
["god"] = {"Godié"},
["goe"] = {"Gongduk"},
["gof"] = {"Gofa"},
["gog"] = {"Gogo"},
["goh"] = {"Old High German (ca. 750-1050)"},
["goi"] = {"Gobasi"},
["goj"] = {"Gowlan"},
["gok"] = {"Gowli"},
["gol"] = {"Gola"},
["gom"] = {"Goan Konkani"},
["gon"] = {"Gondi"},
["goo"] = {"Gone Dau"},
["gop"] = {"Yeretuar"},
["goq"] = {"Gorap"},
["gor"] = {"Gorontalo"},
["gos"] = {"Gronings"},
["got"] = {"Gothic"},
["gou"] = {"Gavar"},
["gov"] = {"Goo"},
["gow"] = {"Gorowa"},
["gox"] = {"Gobu"},
["goy"] = {"Goundo"},
["goz"] = {"Gozarkhani"},
["gpa"] = {"Gupa-Abawa"},
["gpe"] = {"Ghanaian Pidgin English"},
["gpn"] = {"Taiap"},
["gqa"] = {"Ga'anda"},
["gqi"] = {"Guiqiong"},
["gqn"] = {"Guana (Brazil)"},
["gqr"] = {"Gor"},
["gqu"] = {"Qau"},
["gra"] = {"Rajput Garasia"},
["grb"] = {"Grebo"},
["grc"] = {"Ancient Greek (to 1453)"},
["grd"] = {"Guruntum-Mbaaru"},
["grg"] = {"Madi"},
["grh"] = {"Gbiri-Niragu"},
["gri"] = {"Ghari"},
["grj"] = {"Southern Grebo"},
["grk"] = {"Greek languages"},
["grm"] = {"Kota Marudu Talantang"},
["gro"] = {"Groma"},
["grq"] = {"Gorovu"},
["grr"] = {"Taznatit"},
["grs"] = {"Gresi"},
["grt"] = {"Garo"},
["gru"] = {"Kistane"},
["grv"] = {"Central Grebo"},
["grw"] = {"Gweda"},
["grx"] = {"Guriaso"},
["gry"] = {"Barclayville Grebo"},
["grz"] = {"Guramalum"},
["gse"] = {"Ghanaian Sign Language"},
["gsg"] = {"German Sign Language"},
["gsl"] = {"Gusilay"},
["gsm"] = {"Guatemalan Sign Language"},
["gsn"] = {"Nema", "Gusan"},
["gso"] = {"Southwest Gbaya"},
["gsp"] = {"Wasembo"},
["gss"] = {"Greek Sign Language"},
["gsw"] = {"Swiss German", "Alemannic", "Alsatian"},
["gta"] = {"Guató"},
["gtu"] = {"Aghu-Tharnggala"},
["gua"] = {"Shiki"},
["gub"] = {"Guajajára"},
["guc"] = {"Wayuu"},
["gud"] = {"Yocoboué Dida"},
["gue"] = {"Gurindji"},
["guf"] = {"Gupapuyngu"},
["gug"] = {"Paraguayan Guaraní"},
["guh"] = {"Guahibo"},
["gui"] = {"Eastern Bolivian Guaraní"},
["guk"] = {"Gumuz"},
["gul"] = {"Sea Island Creole English"},
["gum"] = {"Guambiano"},
["gun"] = {"Mbyá Guaraní"},
["guo"] = {"Guayabero"},
["gup"] = {"Gunwinggu"},
["guq"] = {"Aché"},
["gur"] = {"Farefare"},
["gus"] = {"Guinean Sign Language"},
["gut"] = {"Maléku Jaíka"},
["guu"] = {"Yanomamö"},
["guw"] = {"Gun"},
["gux"] = {"Gourmanchéma"},
["guz"] = {"Gusii", "Ekegusii"},
["gva"] = {"Guana (Paraguay)"},
["gvc"] = {"Guanano"},
["gve"] = {"Duwet"},
["gvf"] = {"Golin"},
["gvj"] = {"Guajá"},
["gvl"] = {"Gulay"},
["gvm"] = {"Gurmana"},
["gvn"] = {"Kuku-Yalanji"},
["gvo"] = {"Gavião Do Jiparaná"},
["gvp"] = {"Pará Gavião"},
["gvr"] = {"Gurung"},
["gvs"] = {"Gumawana"},
["gvy"] = {"Guyani"},
["gwa"] = {"Mbato"},
["gwb"] = {"Gwa"},
["gwc"] = {"Gawri", "Kalami"},
["gwd"] = {"Gawwada"},
["gwe"] = {"Gweno"},
["gwf"] = {"Gowro"},
["gwg"] = {"Moo"},
["gwi"] = {"Gwichʼin"},
["gwj"] = {"ǀGwi"},
["gwm"] = {"Awngthim"},
["gwn"] = {"Gwandara"},
["gwr"] = {"Gwere"},
["gwt"] = {"Gawar-Bati"},
["gwu"] = {"Guwamu"},
["gww"] = {"Kwini"},
["gwx"] = {"Gua"},
["gxx"] = {"Wè Southern"},
["gya"] = {"Northwest Gbaya"},
["gyb"] = {"Garus"},
["gyd"] = {"Kayardild"},
["gye"] = {"Gyem"},
["gyf"] = {"Gungabula"},
["gyg"] = {"Gbayi"},
["gyi"] = {"Gyele"},
["gyl"] = {"Gayil"},
["gym"] = {"Ngäbere"},
["gyn"] = {"Guyanese Creole English"},
["gyo"] = {"Gyalsumdo"},
["gyr"] = {"Guarayu"},
["gyy"] = {"Gunya"},
["gyz"] = {"Geji", "Gyaazi"},
["gza"] = {"Ganza"},
["gzi"] = {"Gazi"},
["gzn"] = {"Gane"},
["haa"] = {"Han"},
["hab"] = {"Hanoi Sign Language"},
["hac"] = {"Gurani"},
["had"] = {"Hatam"},
["hae"] = {"Eastern Oromo"},
["haf"] = {"Haiphong Sign Language"},
["hag"] = {"Hanga"},
["hah"] = {"Hahon"},
["hai"] = {"Haida"},
["haj"] = {"Hajong"},
["hak"] = {"Hakka Chinese"},
["hal"] = {"Halang"},
["ham"] = {"Hewa"},
["han"] = {"Hangaza"},
["hao"] = {"Hakö"},
["hap"] = {"Hupla"},
["haq"] = {"Ha"},
["har"] = {"Harari"},
["has"] = {"Haisla"},
["hav"] = {"Havu"},
["haw"] = {"Hawaiian"},
["hax"] = {"Southern Haida"},
["hay"] = {"Haya"},
["haz"] = {"Hazaragi"},
["hba"] = {"Hamba"},
["hbb"] = {"Huba"},
["hbn"] = {"Heiban"},
["hbo"] = {"Ancient Hebrew"},
["hbu"] = {"Habu"},
["hca"] = {"Andaman Creole Hindi"},
["hch"] = {"Huichol"},
["hdn"] = {"Northern Haida"},
["hds"] = {"Honduras Sign Language"},
["hdy"] = {"Hadiyya"},
["hea"] = {"Northern Qiandong Miao"},
["hed"] = {"Herdé"},
["heg"] = {"Helong"},
["heh"] = {"Hehe"},
["hei"] = {"Heiltsuk"},
["hem"] = {"Hemba"},
["hgm"] = {"Haiǁom"},
["hgw"] = {"Haigwai"},
["hhi"] = {"Hoia Hoia"},
["hhr"] = {"Kerak"},
["hhy"] = {"Hoyahoya"},
["hia"] = {"Lamang"},
["hib"] = {"Hibito"},
["hid"] = {"Hidatsa"},
["hif"] = {"Fiji Hindi"},
["hig"] = {"Kamwe"},
["hih"] = {"Pamosu"},
["hii"] = {"Hinduri"},
["hij"] = {"Hijuk"},
["hik"] = {"Seit-Kaitetu"},
["hil"] = {"Hiligaynon"},
["him"] = {"Himachali languages", "Western Pahari languages"},
["hio"] = {"Tsoa"},
["hir"] = {"Himarimã"},
["hit"] = {"Hittite"},
["hiw"] = {"Hiw"},
["hix"] = {"Hixkaryána"},
["hji"] = {"Haji"},
["hka"] = {"Kahe"},
["hke"] = {"Hunde"},
["hkh"] = {"Khah", "Poguli"},
["hkk"] = {"Hunjara-Kaina Ke"},
["hkn"] = {"Mel-Khaonh"},
["hks"] = {"Hong Kong Sign Language", "Heung Kong Sau Yue"},
["hla"] = {"Halia"},
["hlb"] = {"Halbi"},
["hld"] = {"Halang Doan"},
["hle"] = {"Hlersu"},
["hlt"] = {"Matu Chin"},
["hlu"] = {"Hieroglyphic Luwian"},
["hma"] = {"Southern Mashan Hmong", "Southern Mashan Miao"},
["hmb"] = {"Humburi Senni Songhay"},
["hmc"] = {"Central Huishui Hmong", "Central Huishui Miao"},
["hmd"] = {"Large Flowery Miao", "A-hmaos", "Da-Hua Miao"},
["hme"] = {"Eastern Huishui Hmong", "Eastern Huishui Miao"},
["hmf"] = {"Hmong Don"},
["hmg"] = {"Southwestern Guiyang Hmong"},
["hmh"] = {"Southwestern Huishui Hmong", "Southwestern Huishui Miao"},
["hmi"] = {"Northern Huishui Hmong", "Northern Huishui Miao"},
["hmj"] = {"Ge", "Gejia"},
["hmk"] = {"Maek"},
["hml"] = {"Luopohe Hmong", "Luopohe Miao"},
["hmm"] = {"Central Mashan Hmong", "Central Mashan Miao"},
["hmn"] = {"Hmong", "Mong"},
["hmp"] = {"Northern Mashan Hmong", "Northern Mashan Miao"},
["hmq"] = {"Eastern Qiandong Miao"},
["hmr"] = {"Hmar"},
["hms"] = {"Southern Qiandong Miao"},
["hmt"] = {"Hamtai"},
["hmu"] = {"Hamap"},
["hmv"] = {"Hmong Dô"},
["hmw"] = {"Western Mashan Hmong", "Western Mashan Miao"},
["hmx"] = {"Hmong-Mien languages"},
["hmy"] = {"Southern Guiyang Hmong", "Southern Guiyang Miao"},
["hmz"] = {"Hmong Shua", "Sinicized Miao"},
["hna"] = {"Mina (Cameroon)"},
["hnd"] = {"Southern Hindko"},
["hne"] = {"Chhattisgarhi"},
["hng"] = {"Hungu"},
["hnh"] = {"ǁAni"},
["hni"] = {"Hani"},
["hnj"] = {"Hmong Njua", "Mong Leng", "Mong Njua"},
["hnn"] = {"Hanunoo"},
["hno"] = {"Northern Hindko"},
["hns"] = {"Caribbean Hindustani"},
["hnu"] = {"Hung"},
["hoa"] = {"Hoava"},
["hob"] = {"Mari (Madang Province)"},
["hoc"] = {"Ho"},
["hod"] = {"Holma"},
["hoe"] = {"Horom"},
["hoh"] = {"Hobyót"},
["hoi"] = {"Holikachuk"},
["hoj"] = {"Hadothi", "Haroti"},
["hok"] = {"Hokan languages"},
["hol"] = {"Holu"},
["hom"] = {"Homa"},
["hoo"] = {"Holoholo"},
["hop"] = {"Hopi"},
["hor"] = {"Horo"},
["hos"] = {"Ho Chi Minh City Sign Language"},
["hot"] = {"Hote", "Malê"},
["hov"] = {"Hovongan"},
["how"] = {"Honi"},
["hoy"] = {"Holiya"},
["hoz"] = {"Hozo"},
["hpo"] = {"Hpon"},
["hps"] = {"Hawai'i Sign Language (HSL)", "Hawai'i Pidgin Sign Language"},
["hra"] = {"Hrangkhol"},
["hrc"] = {"Niwer Mil"},
["hre"] = {"Hre"},
["hrk"] = {"Haruku"},
["hrm"] = {"Horned Miao"},
["hro"] = {"Haroi"},
["hrp"] = {"Nhirrpi"},
["hrt"] = {"Hértevin"},
["hru"] = {"Hruso"},
["hrw"] = {"Warwar Feni"},
["hrx"] = {"Hunsrik"},
["hrz"] = {"Harzani"},
["hsb"] = {"Upper Sorbian"},
["hsh"] = {"Hungarian Sign Language"},
["hsl"] = {"Hausa Sign Language"},
["hsn"] = {"Xiang Chinese"},
["hss"] = {"Harsusi"},
["hti"] = {"Hoti"},
["hto"] = {"Minica Huitoto"},
["hts"] = {"Hadza"},
["htu"] = {"Hitu"},
["htx"] = {"Middle Hittite"},
["hub"] = {"Huambisa"},
["huc"] = {"ǂHua", "ǂʼAmkhoe"},
["hud"] = {"Huaulu"},
["hue"] = {"San Francisco Del Mar Huave"},
["huf"] = {"Humene"},
["hug"] = {"Huachipaeri"},
["huh"] = {"Huilliche"},
["hui"] = {"Huli"},
["huj"] = {"Northern Guiyang Hmong", "Northern Guiyang Miao"},
["huk"] = {"Hulung"},
["hul"] = {"Hula"},
["hum"] = {"Hungana"},
["huo"] = {"Hu"},
["hup"] = {"Hupa"},
["huq"] = {"Tsat"},
["hur"] = {"Halkomelem"},
["hus"] = {"Huastec"},
["hut"] = {"Humla"},
["huu"] = {"Murui Huitoto"},
["huv"] = {"San Mateo Del Mar Huave"},
["huw"] = {"Hukumina"},
["hux"] = {"Nüpode Huitoto"},
["huy"] = {"Hulaulá"},
["huz"] = {"Hunzib"},
["hvc"] = {"Haitian Vodoun Culture Language"},
["hve"] = {"San Dionisio Del Mar Huave"},
["hvk"] = {"Haveke"},
["hvn"] = {"Sabu"},
["hvv"] = {"Santa María Del Mar Huave"},
["hwa"] = {"Wané"},
["hwc"] = {"Hawai'i Creole English", "Hawai'i Pidgin"},
["hwo"] = {"Hwana"},
["hya"] = {"Hya"},
["hyw"] = {"Western Armenian"},
["hyx"] = {"Armenian (family)"},
["iai"] = {"Iaai"},
["ian"] = {"Iatmul"},
["iar"] = {"Purari"},
["iba"] = {"Iban"},
["ibb"] = {"Ibibio"},
["ibd"] = {"Iwaidja"},
["ibe"] = {"Akpes"},
["ibg"] = {"Ibanag"},
["ibh"] = {"Bih"},
["ibl"] = {"Ibaloi"},
["ibm"] = {"Agoi"},
["ibn"] = {"Ibino"},
["ibr"] = {"Ibuoro"},
["ibu"] = {"Ibu"},
["iby"] = {"Ibani"},
["ica"] = {"Ede Ica"},
["ich"] = {"Etkywan"},
["icl"] = {"Icelandic Sign Language"},
["icr"] = {"Islander Creole English"},
["ida"] = {"Idakho-Isukha-Tiriki", "Luidakho-Luisukha-Lutirichi"},
["idb"] = {"Indo-Portuguese"},
["idc"] = {"Idon", "Ajiya"},
["idd"] = {"Ede Idaca"},
["ide"] = {"Idere"},
["idi"] = {"Idi"},
["idr"] = {"Indri"},
["ids"] = {"Idesa"},
["idt"] = {"Idaté"},
["idu"] = {"Idoma"},
["ifa"] = {"Amganad Ifugao"},
["ifb"] = {"Batad Ifugao", "Ayangan Ifugao"},
["ife"] = {"Ifè"},
["iff"] = {"Ifo"},
["ifk"] = {"Tuwali Ifugao"},
["ifm"] = {"Teke-Fuumu"},
["ifu"] = {"Mayoyao Ifugao"},
["ify"] = {"Keley-I Kallahan"},
["igb"] = {"Ebira"},
["ige"] = {"Igede"},
["igg"] = {"Igana"},
["igl"] = {"Igala"},
["igm"] = {"Kanggape"},
["ign"] = {"Ignaciano"},
["igo"] = {"Isebe"},
["igs"] = {"Interglossa"},
["igw"] = {"Igwe"},
["ihb"] = {"Iha Based Pidgin"},
["ihi"] = {"Ihievbe"},
["ihp"] = {"Iha"},
["ihw"] = {"Bidhawal"},
["iin"] = {"Thiin"},
["iir"] = {"Indo-Iranian languages"},
["ijc"] = {"Izon"},
["ije"] = {"Biseni"},
["ijj"] = {"Ede Ije"},
["ijn"] = {"Kalabari"},
["ijo"] = {"Ijo languages"},
["ijs"] = {"Southeast Ijo"},
["ike"] = {"Eastern Canadian Inuktitut"},
["iki"] = {"Iko"},
["ikk"] = {"Ika"},
["ikl"] = {"Ikulu"},
["iko"] = {"Olulumo-Ikom"},
["ikp"] = {"Ikpeshi"},
["ikr"] = {"Ikaranggal"},
["iks"] = {"Inuit Sign Language"},
["ikt"] = {"Inuinnaqtun", "Western Canadian Inuktitut"},
["ikv"] = {"Iku-Gora-Ankwa"},
["ikw"] = {"Ikwere"},
["ikx"] = {"Ik"},
["ikz"] = {"Ikizu"},
["ila"] = {"Ile Ape"},
["ilb"] = {"Ila"},
["ilg"] = {"Garig-Ilgar"},
["ili"] = {"Ili Turki"},
["ilk"] = {"Ilongot"},
["ilm"] = {"Iranun (Malaysia)"},
["ilo"] = {"Iloko"},
["ilp"] = {"Iranun (Philippines)"},
["ils"] = {"International Sign"},
["ilu"] = {"Ili'uun"},
["ilv"] = {"Ilue"},
["ima"] = {"Mala Malasar"},
["imi"] = {"Anamgura"},
["iml"] = {"Miluk"},
["imn"] = {"Imonda"},
["imo"] = {"Imbongu"},
["imr"] = {"Imroing"},
["ims"] = {"Marsian"},
["imt"] = {"Imotong"},
["imy"] = {"Milyan"},
["inb"] = {"Inga"},
["inc"] = {"Indic languages"},
["ine"] = {"Indo-European languages"},
["ing"] = {"Degexit'an"},
["inh"] = {"Ingush"},
["inj"] = {"Jungle Inga"},
["inl"] = {"Indonesian Sign Language"},
["inm"] = {"Minaean"},
["inn"] = {"Isinai"},
["ino"] = {"Inoke-Yate"},
["inp"] = {"Iñapari"},
["ins"] = {"Indian Sign Language"},
["int"] = {"Intha"},
["inz"] = {"Ineseño"},
["ior"] = {"Inor"},
["iou"] = {"Tuma-Irumu"},
["iow"] = {"Iowa-Oto"},
["ipi"] = {"Ipili"},
["ipo"] = {"Ipiko"},
["iqu"] = {"Iquito"},
["iqw"] = {"Ikwo"},
["ira"] = {"Iranian languages"},
["ire"] = {"Iresim"},
["irh"] = {"Irarutu"},
["iri"] = {"Rigwe", "Irigwe"},
["irk"] = {"Iraqw"},
["irn"] = {"Irántxe"},
["iro"] = {"Iroquoian languages"},
["irr"] = {"Ir"},
["iru"] = {"Irula"},
["irx"] = {"Kamberau"},
["iry"] = {"Iraya"},
["isa"] = {"Isabi"},
["isc"] = {"Isconahua"},
["isd"] = {"Isnag"},
["ise"] = {"Italian Sign Language"},
["isg"] = {"Irish Sign Language"},
["ish"] = {"Esan"},
["isi"] = {"Nkem-Nkum"},
["isk"] = {"Ishkashimi"},
["ism"] = {"Masimasi"},
["isn"] = {"Isanzu"},
["iso"] = {"Isoko"},
["isr"] = {"Israeli Sign Language"},
["ist"] = {"Istriot"},
["isu"] = {"Isu (Menchum Division)"},
["itb"] = {"Binongan Itneg"},
["itc"] = {"Italic languages"},
["itd"] = {"Southern Tidung"},
["ite"] = {"Itene"},
["iti"] = {"Inlaod Itneg"},
["itk"] = {"Judeo-Italian"},
["itl"] = {"Itelmen"},
["itm"] = {"Itu Mbon Uzo"},
["ito"] = {"Itonama"},
["itr"] = {"Iteri"},
["its"] = {"Isekiri"},
["itt"] = {"Maeng Itneg"},
["itv"] = {"Itawit"},
["itw"] = {"Ito"},
["itx"] = {"Itik"},
["ity"] = {"Moyadan Itneg"},
["itz"] = {"Itzá"},
["ium"] = {"Iu Mien"},
["ivb"] = {"Ibatan"},
["ivv"] = {"Ivatan"},
["iwk"] = {"I-Wak"},
["iwm"] = {"Iwam"},
["iwo"] = {"Iwur"},
["iws"] = {"Sepik Iwam"},
["ixc"] = {"Ixcatec"},
["ixl"] = {"Ixil"},
["iya"] = {"Iyayu"},
["iyo"] = {"Mesaka"},
["iyx"] = {"Yaka (Congo)"},
["izh"] = {"Ingrian"},
["izr"] = {"Izere"},
["izz"] = {"Izii"},
["jaa"] = {"Jamamadí"},
["jab"] = {"Hyam"},
["jac"] = {"Popti'", "Jakalteko"},
["jad"] = {"Jahanka"},
["jae"] = {"Yabem"},
["jaf"] = {"Jara"},
["jah"] = {"Jah Hut"},
["jaj"] = {"Zazao"},
["jak"] = {"Jakun"},
["jal"] = {"Yalahatan"},
["jam"] = {"Jamaican Creole English"},
["jan"] = {"Jandai"},
["jao"] = {"Yanyuwa"},
["jaq"] = {"Yaqay"},
["jas"] = {"New Caledonian Javanese"},
["jat"] = {"Jakati"},
["jau"] = {"Yaur"},
["jax"] = {"Jambi Malay"},
["jay"] = {"Yan-nhangu", "Nhangu"},
["jaz"] = {"Jawe"},
["jbe"] = {"Judeo-Berber"},
["jbi"] = {"Badjiri"},
["jbj"] = {"Arandai"},
["jbk"] = {"Barikewa"},
["jbm"] = {"Bijim"},
["jbn"] = {"Nafusi"},
["jbo"] = {"Lojban"},
["jbr"] = {"Jofotek-Bromnya"},
["jbt"] = {"Jabutí"},
["jbu"] = {"Jukun Takum"},
["jbw"] = {"Yawijibaya"},
["jcs"] = {"Jamaican Country Sign Language"},
["jct"] = {"Krymchak"},
["jda"] = {"Jad"},
["jdg"] = {"Jadgali"},
["jdt"] = {"Judeo-Tat"},
["jeb"] = {"Jebero"},
["jee"] = {"Jerung"},
["jeh"] = {"Jeh"},
["jei"] = {"Yei"},
["jek"] = {"Jeri Kuo"},
["jel"] = {"Yelmek"},
["jen"] = {"Dza"},
["jer"] = {"Jere"},
["jet"] = {"Manem"},
["jeu"] = {"Jonkor Bourmataguil"},
["jgb"] = {"Ngbee"},
["jge"] = {"Judeo-Georgian"},
["jgk"] = {"Gwak"},
["jgo"] = {"Ngomba"},
["jhi"] = {"Jehai"},
["jhs"] = {"Jhankot Sign Language"},
["jia"] = {"Jina"},
["jib"] = {"Jibu"},
["jic"] = {"Tol"},
["jid"] = {"Bu (Kaduna State)"},
["jie"] = {"Jilbe"},
["jig"] = {"Jingulu", "Djingili"},
["jih"] = {"sTodsde", "Shangzhai"},
["jii"] = {"Jiiddu"},
["jil"] = {"Jilim"},
["jim"] = {"Jimi (Cameroon)"},
["jio"] = {"Jiamao"},
["jiq"] = {"Guanyinqiao", "Lavrung"},
["jit"] = {"Jita"},
["jiu"] = {"Youle Jinuo"},
["jiv"] = {"Shuar"},
["jiy"] = {"Buyuan Jinuo"},
["jje"] = {"Jejueo"},
["jjr"] = {"Bankal"},
["jka"] = {"Kaera"},
["jkm"] = {"Mobwa Karen"},
["jko"] = {"Kubo"},
["jkp"] = {"Paku Karen"},
["jkr"] = {"Koro (India)"},
["jks"] = {"Amami Koniya Sign Language"},
["jku"] = {"Labir"},
["jle"] = {"Ngile"},
["jls"] = {"Jamaican Sign Language"},
["jma"] = {"Dima"},
["jmb"] = {"Zumbun"},
["jmc"] = {"Machame"},
["jmd"] = {"Yamdena"},
["jmi"] = {"Jimi (Nigeria)"},
["jml"] = {"Jumli"},
["jmn"] = {"Makuri Naga"},
["jmr"] = {"Kamara"},
["jms"] = {"Mashi (Nigeria)"},
["jmw"] = {"Mouwase"},
["jmx"] = {"Western Juxtlahuaca Mixtec"},
["jna"] = {"Jangshung"},
["jnd"] = {"Jandavra"},
["jng"] = {"Yangman"},
["jni"] = {"Janji"},
["jnj"] = {"Yemsa"},
["jnl"] = {"Rawat"},
["jns"] = {"Jaunsari"},
["job"] = {"Joba"},
["jod"] = {"Wojenaka"},
["jog"] = {"Jogi"},
["jor"] = {"Jorá"},
["jos"] = {"Jordanian Sign Language"},
["jow"] = {"Jowulu"},
["jpa"] = {"Jewish Palestinian Aramaic"},
["jpr"] = {"Judeo-Persian"},
["jpx"] = {"Japanese (family)"},
["jqr"] = {"Jaqaru"},
["jra"] = {"Jarai"},
["jrb"] = {"Judeo-Arabic"},
["jrr"] = {"Jiru"},
["jrt"] = {"Jakattoe"},
["jru"] = {"Japrería"},
["jsl"] = {"Japanese Sign Language"},
["jua"] = {"Júma"},
["jub"] = {"Wannu"},
["juc"] = {"Jurchen"},
["jud"] = {"Worodougou"},
["juh"] = {"Hõne"},
["jui"] = {"Ngadjuri"},
["juk"] = {"Wapan"},
["jul"] = {"Jirel"},
["jum"] = {"Jumjum"},
["jun"] = {"Juang"},
["juo"] = {"Jiba"},
["jup"] = {"Hupdë"},
["jur"] = {"Jurúna"},
["jus"] = {"Jumla Sign Language"},
["jut"] = {"Jutish"},
["juu"] = {"Ju"},
["juw"] = {"Wãpha"},
["juy"] = {"Juray"},
["jvd"] = {"Javindo"},
["jvn"] = {"Caribbean Javanese"},
["jwi"] = {"Jwira-Pepesa"},
["jya"] = {"Jiarong"},
["jye"] = {"Judeo-Yemeni Arabic"},
["jyy"] = {"Jaya"},
["kaa"] = {"Kara-Kalpak", "Karakalpak"},
["kab"] = {"Kabyle"},
["kac"] = {"Kachin", "Jingpho"},
["kad"] = {"Adara"},
["kae"] = {"Ketangalan"},
["kaf"] = {"Katso"},
["kag"] = {"Kajaman"},
["kah"] = {"Kara (Central African Republic)"},
["kai"] = {"Karekare"},
["kaj"] = {"Jju"},
["kak"] = {"Kalanguya", "Kayapa Kallahan"},
["kam"] = {"Kamba (Kenya)"},
["kao"] = {"Xaasongaxango"},
["kap"] = {"Bezhta"},
["kaq"] = {"Capanahua"},
["kar"] = {"Karen languages"},
["kav"] = {"Katukína"},
["kaw"] = {"Kawi"},
["kax"] = {"Kao"},
["kay"] = {"Kamayurá"},
["kba"] = {"Kalarko"},
["kbb"] = {"Kaxuiâna"},
["kbc"] = {"Kadiwéu"},
["kbd"] = {"Kabardian"},
["kbe"] = {"Kanju"},
["kbg"] = {"Khamba"},
["kbh"] = {"Camsá"},
["kbi"] = {"Kaptiau"},
["kbj"] = {"Kari"},
["kbk"] = {"Grass Koiari"},
["kbl"] = {"Kanembu"},
["kbm"] = {"Iwal"},
["kbn"] = {"Kare (Central African Republic)"},
["kbo"] = {"Keliko"},
["kbp"] = {"Kabiyè"},
["kbq"] = {"Kamano"},
["kbr"] = {"Kafa"},
["kbs"] = {"Kande"},
["kbt"] = {"Abadi"},
["kbu"] = {"Kabutra"},
["kbv"] = {"Dera (Indonesia)"},
["kbw"] = {"Kaiep"},
["kbx"] = {"Ap Ma"},
["kby"] = {"Manga Kanuri"},
["kbz"] = {"Duhwa"},
["kca"] = {"Khanty"},
["kcb"] = {"Kawacha"},
["kcc"] = {"Lubila"},
["kcd"] = {"Ngkâlmpw Kanum"},
["kce"] = {"Kaivi"},
["kcf"] = {"Ukaan"},
["kcg"] = {"Tyap"},
["kch"] = {"Vono"},
["kci"] = {"Kamantan"},
["kcj"] = {"Kobiana"},
["kck"] = {"Kalanga"},
["kcl"] = {"Kela (Papua New Guinea)", "Kala"},
["kcm"] = {"Gula (Central African Republic)"},
["kcn"] = {"Nubi"},
["kco"] = {"Kinalakna"},
["kcp"] = {"Kanga"},
["kcq"] = {"Kamo"},
["kcr"] = {"Katla"},
["kcs"] = {"Koenoem"},
["kct"] = {"Kaian"},
["kcu"] = {"Kami (Tanzania)"},
["kcv"] = {"Kete"},
["kcw"] = {"Kabwari"},
["kcx"] = {"Kachama-Ganjule"},
["kcy"] = {"Korandje"},
["kcz"] = {"Konongo"},
["kda"] = {"Worimi"},
["kdc"] = {"Kutu"},
["kdd"] = {"Yankunytjatjara"},
["kde"] = {"Makonde"},
["kdf"] = {"Mamusi"},
["kdg"] = {"Seba"},
["kdh"] = {"Tem"},
["kdi"] = {"Kumam"},
["kdj"] = {"Karamojong"},
["kdk"] = {"Numèè", "Kwényi"},
["kdl"] = {"Tsikimba"},
["kdm"] = {"Kagoma"},
["kdn"] = {"Kunda"},
["kdo"] = {"Kordofanian languages"},
["kdp"] = {"Kaningdon-Nindem"},
["kdq"] = {"Koch"},
["kdr"] = {"Karaim"},
["kdt"] = {"Kuy"},
["kdu"] = {"Kadaru"},
["kdw"] = {"Koneraw"},
["kdx"] = {"Kam"},
["kdy"] = {"Keder", "Keijar"},
["kdz"] = {"Kwaja"},
["kea"] = {"Kabuverdianu"},
["keb"] = {"Kélé"},
["kec"] = {"Keiga"},
["ked"] = {"Kerewe"},
["kee"] = {"Eastern Keres"},
["kef"] = {"Kpessi"},
["keg"] = {"Tese"},
["keh"] = {"Keak"},
["kei"] = {"Kei"},
["kej"] = {"Kadar"},
["kek"] = {"Kekchí"},
["kel"] = {"Kela (Democratic Republic of Congo)"},
["kem"] = {"Kemak"},
["ken"] = {"Kenyang"},
["keo"] = {"Kakwa"},
["kep"] = {"Kaikadi"},
["keq"] = {"Kamar"},
["ker"] = {"Kera"},
["kes"] = {"Kugbo"},
["ket"] = {"Ket"},
["keu"] = {"Akebu"},
["kev"] = {"Kanikkaran"},
["kew"] = {"West Kewa"},
["kex"] = {"Kukna"},
["key"] = {"Kupia"},
["kez"] = {"Kukele"},
["kfa"] = {"Kodava"},
["kfb"] = {"Northwestern Kolami"},
["kfc"] = {"Konda-Dora"},
["kfd"] = {"Korra Koraga"},
["kfe"] = {"Kota (India)"},
["kff"] = {"Koya"},
["kfg"] = {"Kudiya"},
["kfh"] = {"Kurichiya"},
["kfi"] = {"Kannada Kurumba"},
["kfj"] = {"Kemiehua"},
["kfk"] = {"Kinnauri"},
["kfl"] = {"Kung"},
["kfm"] = {"Khunsari"},
["kfn"] = {"Kuk"},
["kfo"] = {"Koro (Côte d'Ivoire)"},
["kfp"] = {"Korwa"},
["kfq"] = {"Korku"},
["kfr"] = {"Kachhi", "Kutchi"},
["kfs"] = {"Bilaspuri"},
["kft"] = {"Kanjari"},
["kfu"] = {"Katkari"},
["kfv"] = {"Kurmukar"},
["kfw"] = {"Kharam Naga"},
["kfx"] = {"Kullu Pahari"},
["kfy"] = {"Kumaoni"},
["kfz"] = {"Koromfé"},
["kga"] = {"Koyaga"},
["kgb"] = {"Kawe"},
["kge"] = {"Komering"},
["kgf"] = {"Kube"},
["kgg"] = {"Kusunda"},
["kgi"] = {"Selangor Sign Language"},
["kgj"] = {"Gamale Kham"},
["kgk"] = {"Kaiwá"},
["kgl"] = {"Kunggari"},
["kgm"] = {"Karipúna"},
["kgn"] = {"Karingani"},
["kgo"] = {"Krongo"},
["kgp"] = {"Kaingang"},
["kgq"] = {"Kamoro"},
["kgr"] = {"Abun"},
["kgs"] = {"Kumbainggar"},
["kgt"] = {"Somyev"},
["kgu"] = {"Kobol"},
["kgv"] = {"Karas"},
["kgw"] = {"Karon Dori"},
["kgx"] = {"Kamaru"},
["kgy"] = {"Kyerung"},
["kha"] = {"Khasi"},
["khb"] = {"Lü"},
["khc"] = {"Tukang Besi North"},
["khd"] = {"Bädi Kanum"},
["khe"] = {"Korowai"},
["khf"] = {"Khuen"},
["khg"] = {"Khams Tibetan"},
["khh"] = {"Kehu"},
["khi"] = {"Khoisan languages"},
["khj"] = {"Kuturmi"},
["khk"] = {"Halh Mongolian"},
["khl"] = {"Lusi"},
["khn"] = {"Khandesi"},
["kho"] = {"Khotanese", "Sakan"},
["khp"] = {"Kapori", "Kapauri"},
["khq"] = {"Koyra Chiini Songhay"},
["khr"] = {"Kharia"},
["khs"] = {"Kasua"},
["kht"] = {"Khamti"},
["khu"] = {"Nkhumbi"},
["khv"] = {"Khvarshi"},
["khw"] = {"Khowar"},
["khx"] = {"Kanu"},
["khy"] = {"Kele (Democratic Republic of Congo)"},
["khz"] = {"Keapara"},
["kia"] = {"Kim"},
["kib"] = {"Koalib"},
["kic"] = {"Kickapoo"},
["kid"] = {"Koshin"},
["kie"] = {"Kibet"},
["kif"] = {"Eastern Parbate Kham"},
["kig"] = {"Kimaama", "Kimaghima"},
["kih"] = {"Kilmeri"},
["kii"] = {"Kitsai"},
["kij"] = {"Kilivila"},
["kil"] = {"Kariya"},
["kim"] = {"Karagas"},
["kio"] = {"Kiowa"},
["kip"] = {"Sheshi Kham"},
["kiq"] = {"Kosadle", "Kosare"},
["kis"] = {"Kis"},
["kit"] = {"Agob"},
["kiu"] = {"Kirmanjki (individual language)"},
["kiv"] = {"Kimbu"},
["kiw"] = {"Northeast Kiwai"},
["kix"] = {"Khiamniungan Naga"},
["kiy"] = {"Kirikiri"},
["kiz"] = {"Kisi"},
["kja"] = {"Mlap"},
["kjb"] = {"Q'anjob'al", "Kanjobal"},
["kjc"] = {"Coastal Konjo"},
["kjd"] = {"Southern Kiwai"},
["kje"] = {"Kisar"},
["kjg"] = {"Khmu"},
["kjh"] = {"Khakas"},
["kji"] = {"Zabana"},
["kjj"] = {"Khinalugh"},
["kjk"] = {"Highland Konjo"},
["kjl"] = {"Western Parbate Kham"},
["kjm"] = {"Kháng"},
["kjn"] = {"Kunjen"},
["kjo"] = {"Harijan Kinnauri"},
["kjp"] = {"Pwo Eastern Karen"},
["kjq"] = {"Western Keres"},
["kjr"] = {"Kurudu"},
["kjs"] = {"East Kewa"},
["kjt"] = {"Phrae Pwo Karen"},
["kju"] = {"Kashaya"},
["kjv"] = {"Kaikavian Literary Language"},
["kjx"] = {"Ramopa"},
["kjy"] = {"Erave"},
["kjz"] = {"Bumthangkha"},
["kka"] = {"Kakanda"},
["kkb"] = {"Kwerisa"},
["kkc"] = {"Odoodee"},
["kkd"] = {"Kinuku"},
["kke"] = {"Kakabe"},
["kkf"] = {"Kalaktang Monpa"},
["kkg"] = {"Mabaka Valley Kalinga"},
["kkh"] = {"Khün"},
["kki"] = {"Kagulu"},
["kkj"] = {"Kako"},
["kkk"] = {"Kokota"},
["kkl"] = {"Kosarek Yale"},
["kkm"] = {"Kiong"},
["kkn"] = {"Kon Keu"},
["kko"] = {"Karko"},
["kkp"] = {"Gugubera", "Koko-Bera"},
["kkq"] = {"Kaeku"},
["kkr"] = {"Kir-Balar"},
["kks"] = {"Giiwo"},
["kkt"] = {"Koi"},
["kku"] = {"Tumi"},
["kkv"] = {"Kangean"},
["kkw"] = {"Teke-Kukuya"},
["kkx"] = {"Kohin"},
["kky"] = {"Guugu Yimidhirr", "Guguyimidjir"},
["kkz"] = {"Kaska"},
["kla"] = {"Klamath-Modoc"},
["klb"] = {"Kiliwa"},
["klc"] = {"Kolbila"},
["kld"] = {"Gamilaraay"},
["kle"] = {"Kulung (Nepal)"},
["klf"] = {"Kendeje"},
["klg"] = {"Tagakaulo"},
["klh"] = {"Weliki"},
["kli"] = {"Kalumpang"},
["klj"] = {"Khalaj"},
["klk"] = {"Kono (Nigeria)"},
["kll"] = {"Kagan Kalagan"},
["klm"] = {"Migum"},
["kln"] = {"Kalenjin"},
["klo"] = {"Kapya"},
["klp"] = {"Kamasa"},
["klq"] = {"Rumu"},
["klr"] = {"Khaling"},
["kls"] = {"Kalasha"},
["klt"] = {"Nukna"},
["klu"] = {"Klao"},
["klv"] = {"Maskelynes"},
["klw"] = {"Tado", "Lindu"},
["klx"] = {"Koluwawa"},
["kly"] = {"Kalao"},
["klz"] = {"Kabola"},
["kma"] = {"Konni"},
["kmb"] = {"Kimbundu"},
["kmc"] = {"Southern Dong"},
["kmd"] = {"Majukayang Kalinga"},
["kme"] = {"Bakole"},
["kmf"] = {"Kare (Papua New Guinea)"},
["kmg"] = {"Kâte"},
["kmh"] = {"Kalam"},
["kmi"] = {"Kami (Nigeria)"},
["kmj"] = {"Kumarbhag Paharia"},
["kmk"] = {"Limos Kalinga"},
["kml"] = {"Tanudan Kalinga"},
["kmm"] = {"Kom (India)"},
["kmn"] = {"Awtuw"},
["kmo"] = {"Kwoma"},
["kmp"] = {"Gimme"},
["kmq"] = {"Kwama"},
["kmr"] = {"Northern Kurdish"},
["kms"] = {"Kamasau"},
["kmt"] = {"Kemtuik"},
["kmu"] = {"Kanite"},
["kmv"] = {"Karipúna Creole French"},
["kmw"] = {"Komo (Democratic Republic of Congo)"},
["kmx"] = {"Waboda"},
["kmy"] = {"Koma"},
["kmz"] = {"Khorasani Turkish"},
["kna"] = {"Dera (Nigeria)"},
["knb"] = {"Lubuagan Kalinga"},
["knc"] = {"Central Kanuri"},
["knd"] = {"Konda"},
["kne"] = {"Kankanaey"},
["knf"] = {"Mankanya"},
["kng"] = {"Koongo"},
["kni"] = {"Kanufi"},
["knj"] = {"Western Kanjobal"},
["knk"] = {"Kuranko"},
["knl"] = {"Keninjal"},
["knm"] = {"Kanamarí"},
["knn"] = {"Konkani (individual language)"},
["kno"] = {"Kono (Sierra Leone)"},
["knp"] = {"Kwanja"},
["knq"] = {"Kintaq"},
["knr"] = {"Kaningra"},
["kns"] = {"Kensiu"},
["knt"] = {"Panoan Katukína"},
["knu"] = {"Kono (Guinea)"},
["knv"] = {"Tabo"},
["knw"] = {"Kung-Ekoka"},
["knx"] = {"Kendayan", "Salako"},
["kny"] = {"Kanyok"},
["knz"] = {"Kalamsé"},
["koa"] = {"Konomala"},
["koc"] = {"Kpati"},
["kod"] = {"Kodi"},
["koe"] = {"Kacipo-Bale Suri"},
["kof"] = {"Kubi"},
["kog"] = {"Cogui", "Kogi"},
["koh"] = {"Koyo"},
["koi"] = {"Komi-Permyak"},
["kok"] = {"Konkani (macrolanguage)"},
["kol"] = {"Kol (Papua New Guinea)"},
["koo"] = {"Konzo"},
["kop"] = {"Waube"},
["koq"] = {"Kota (Gabon)"},
["kos"] = {"Kosraean"},
["kot"] = {"Lagwan"},
["kou"] = {"Koke"},
["kov"] = {"Kudu-Camo"},
["kow"] = {"Kugama"},
["koy"] = {"Koyukon"},
["koz"] = {"Korak"},
["kpa"] = {"Kutto"},
["kpb"] = {"Mullu Kurumba"},
["kpc"] = {"Curripaco"},
["kpd"] = {"Koba"},
["kpe"] = {"Kpelle"},
["kpf"] = {"Komba"},
["kpg"] = {"Kapingamarangi"},
["kph"] = {"Kplang"},
["kpi"] = {"Kofei"},
["kpj"] = {"Karajá"},
["kpk"] = {"Kpan"},
["kpl"] = {"Kpala"},
["kpm"] = {"Koho"},
["kpn"] = {"Kepkiriwát"},
["kpo"] = {"Ikposo"},
["kpq"] = {"Korupun-Sela"},
["kpr"] = {"Korafe-Yegha"},
["kps"] = {"Tehit"},
["kpt"] = {"Karata"},
["kpu"] = {"Kafoa"},
["kpv"] = {"Komi-Zyrian"},
["kpw"] = {"Kobon"},
["kpx"] = {"Mountain Koiali"},
["kpy"] = {"Koryak"},
["kpz"] = {"Kupsabiny"},
["kqa"] = {"Mum"},
["kqb"] = {"Kovai"},
["kqc"] = {"Doromu-Koki"},
["kqd"] = {"Koy Sanjaq Surat"},
["kqe"] = {"Kalagan"},
["kqf"] = {"Kakabai"},
["kqg"] = {"Khe"},
["kqh"] = {"Kisankasa"},
["kqi"] = {"Koitabu"},
["kqj"] = {"Koromira"},
["kqk"] = {"Kotafon Gbe"},
["kql"] = {"Kyenele"},
["kqm"] = {"Khisa"},
["kqn"] = {"Kaonde"},
["kqo"] = {"Eastern Krahn"},
["kqp"] = {"Kimré"},
["kqq"] = {"Krenak"},
["kqr"] = {"Kimaragang"},
["kqs"] = {"Northern Kissi"},
["kqt"] = {"Klias River Kadazan"},
["kqu"] = {"Seroa"},
["kqv"] = {"Okolod"},
["kqw"] = {"Kandas"},
["kqx"] = {"Mser"},
["kqy"] = {"Koorete"},
["kqz"] = {"Korana"},
["kra"] = {"Kumhali"},
["krb"] = {"Karkin"},
["krc"] = {"Karachay-Balkar"},
["krd"] = {"Kairui-Midiki"},
["kre"] = {"Panará"},
["krf"] = {"Koro (Vanuatu)"},
["krh"] = {"Kurama"},
["kri"] = {"Krio"},
["krj"] = {"Kinaray-A"},
["krk"] = {"Kerek"},
["krl"] = {"Karelian"},
["krn"] = {"Sapo"},
["kro"] = {"Kru languages"},
["krp"] = {"Korop"},
["krr"] = {"Krung"},
["krs"] = {"Gbaya (Sudan)"},
["krt"] = {"Tumari Kanuri"},
["kru"] = {"Kurukh"},
["krv"] = {"Kavet"},
["krw"] = {"Western Krahn"},
["krx"] = {"Karon"},
["kry"] = {"Kryts"},
["krz"] = {"Sota Kanum"},
["ksa"] = {"Shuwa-Zamani"},
["ksb"] = {"Shambala"},
["ksc"] = {"Southern Kalinga"},
["ksd"] = {"Kuanua"},
["kse"] = {"Kuni"},
["ksf"] = {"Bafia"},
["ksg"] = {"Kusaghe"},
["ksh"] = {"Kölsch"},
["ksi"] = {"Krisa", "I'saka"},
["ksj"] = {"Uare"},
["ksk"] = {"Kansa"},
["ksl"] = {"Kumalu"},
["ksm"] = {"Kumba"},
["ksn"] = {"Kasiguranin"},
["kso"] = {"Kofa"},
["ksp"] = {"Kaba"},
["ksq"] = {"Kwaami"},
["ksr"] = {"Borong"},
["kss"] = {"Southern Kisi"},
["kst"] = {"Winyé"},
["ksu"] = {"Khamyang"},
["ksv"] = {"Kusu"},
["ksw"] = {"S'gaw Karen"},
["ksx"] = {"Kedang"},
["ksy"] = {"Kharia Thar"},
["ksz"] = {"Kodaku"},
["kta"] = {"Katua"},
["ktb"] = {"Kambaata"},
["ktc"] = {"Kholok"},
["ktd"] = {"Kokata", "Kukatha"},
["kte"] = {"Nubri"},
["ktf"] = {"Kwami"},
["ktg"] = {"Kalkutung"},
["kth"] = {"Karanga"},
["kti"] = {"North Muyu"},
["ktj"] = {"Plapo Krumen"},
["ktk"] = {"Kaniet"},
["ktl"] = {"Koroshi"},
["ktm"] = {"Kurti"},
["ktn"] = {"Karitiâna"},
["kto"] = {"Kuot"},
["ktp"] = {"Kaduo"},
["ktq"] = {"Katabaga"},
["kts"] = {"South Muyu"},
["ktt"] = {"Ketum"},
["ktu"] = {"Kituba (Democratic Republic of Congo)"},
["ktv"] = {"Eastern Katu"},
["ktw"] = {"Kato"},
["ktx"] = {"Kaxararí"},
["kty"] = {"Kango (Bas-Uélé District)"},
["ktz"] = {"Juǀʼhoan", "Juǀʼhoansi"},
["kub"] = {"Kutep"},
["kuc"] = {"Kwinsu"},
["kud"] = {"'Auhelawa"},
["kue"] = {"Kuman (Papua New Guinea)"},
["kuf"] = {"Western Katu"},
["kug"] = {"Kupa"},
["kuh"] = {"Kushi"},
["kui"] = {"Kuikúro-Kalapálo", "Kalapalo"},
["kuj"] = {"Kuria"},
["kuk"] = {"Kepo'"},
["kul"] = {"Kulere"},
["kum"] = {"Kumyk"},
["kun"] = {"Kunama"},
["kuo"] = {"Kumukio"},
["kup"] = {"Kunimaipa"},
["kuq"] = {"Karipuna"},
["kus"] = {"Kusaal"},
["kut"] = {"Kutenai"},
["kuu"] = {"Upper Kuskokwim"},
["kuv"] = {"Kur"},
["kuw"] = {"Kpagua"},
["kux"] = {"Kukatja"},
["kuy"] = {"Kuuku-Ya'u"},
["kuz"] = {"Kunza"},
["kva"] = {"Bagvalal"},
["kvb"] = {"Kubu"},
["kvc"] = {"Kove"},
["kvd"] = {"Kui (Indonesia)"},
["kve"] = {"Kalabakan"},
["kvf"] = {"Kabalai"},
["kvg"] = {"Kuni-Boazi"},
["kvh"] = {"Komodo"},
["kvi"] = {"Kwang"},
["kvj"] = {"Psikye"},
["kvk"] = {"Korean Sign Language"},
["kvl"] = {"Kayaw"},
["kvm"] = {"Kendem"},
["kvn"] = {"Border Kuna"},
["kvo"] = {"Dobel"},
["kvp"] = {"Kompane"},
["kvq"] = {"Geba Karen"},
["kvr"] = {"Kerinci"},
["kvt"] = {"Lahta Karen", "Lahta"},
["kvu"] = {"Yinbaw Karen"},
["kvv"] = {"Kola"},
["kvw"] = {"Wersing"},
["kvx"] = {"Parkari Koli"},
["kvy"] = {"Yintale Karen", "Yintale"},
["kvz"] = {"Tsakwambo", "Tsaukambo"},
["kwa"] = {"Dâw"},
["kwb"] = {"Kwa"},
["kwc"] = {"Likwala"},
["kwd"] = {"Kwaio"},
["kwe"] = {"Kwerba"},
["kwf"] = {"Kwara'ae"},
["kwg"] = {"Sara Kaba Deme"},
["kwh"] = {"Kowiai"},
["kwi"] = {"Awa-Cuaiquer"},
["kwj"] = {"Kwanga"},
["kwk"] = {"Kwakiutl"},
["kwl"] = {"Kofyar"},
["kwm"] = {"Kwambi"},
["kwn"] = {"Kwangali"},
["kwo"] = {"Kwomtari"},
["kwp"] = {"Kodia"},
["kwr"] = {"Kwer"},
["kws"] = {"Kwese"},
["kwt"] = {"Kwesten"},
["kwu"] = {"Kwakum"},
["kwv"] = {"Sara Kaba Náà"},
["kww"] = {"Kwinti"},
["kwx"] = {"Khirwar"},
["kwy"] = {"San Salvador Kongo"},
["kwz"] = {"Kwadi"},
["kxa"] = {"Kairiru"},
["kxb"] = {"Krobu"},
["kxc"] = {"Konso", "Khonso"},
["kxd"] = {"Brunei"},
["kxf"] = {"Manumanaw Karen", "Manumanaw"},
["kxh"] = {"Karo (Ethiopia)"},
["kxi"] = {"Keningau Murut"},
["kxj"] = {"Kulfa"},
["kxk"] = {"Zayein Karen"},
["kxm"] = {"Northern Khmer"},
["kxn"] = {"Kanowit-Tanjong Melanau"},
["kxo"] = {"Kanoé"},
["kxp"] = {"Wadiyara Koli"},
["kxq"] = {"Smärky Kanum"},
["kxr"] = {"Koro (Papua New Guinea)"},
["kxs"] = {"Kangjia"},
["kxt"] = {"Koiwat"},
["kxv"] = {"Kuvi"},
["kxw"] = {"Konai"},
["kxx"] = {"Likuba"},
["kxy"] = {"Kayong"},
["kxz"] = {"Kerewo"},
["kya"] = {"Kwaya"},
["kyb"] = {"Butbut Kalinga"},
["kyc"] = {"Kyaka"},
["kyd"] = {"Karey"},
["kye"] = {"Krache"},
["kyf"] = {"Kouya"},
["kyg"] = {"Keyagana"},
["kyh"] = {"Karok"},
["kyi"] = {"Kiput"},
["kyj"] = {"Karao"},
["kyk"] = {"Kamayo"},
["kyl"] = {"Kalapuya"},
["kym"] = {"Kpatili"},
["kyn"] = {"Northern Binukidnon"},
["kyo"] = {"Kelon"},
["kyp"] = {"Kang"},
["kyq"] = {"Kenga"},
["kyr"] = {"Kuruáya"},
["kys"] = {"Baram Kayan"},
["kyt"] = {"Kayagar"},
["kyu"] = {"Western Kayah"},
["kyv"] = {"Kayort"},
["kyw"] = {"Kudmali"},
["kyx"] = {"Rapoisi"},
["kyy"] = {"Kambaira"},
["kyz"] = {"Kayabí"},
["kza"] = {"Western Karaboro"},
["kzb"] = {"Kaibobo"},
["kzc"] = {"Bondoukou Kulango"},
["kzd"] = {"Kadai"},
["kze"] = {"Kosena"},
["kzf"] = {"Da'a Kaili"},
["kzg"] = {"Kikai"},
["kzi"] = {"Kelabit"},
["kzk"] = {"Kazukuru"},
["kzl"] = {"Kayeli"},
["kzm"] = {"Kais"},
["kzn"] = {"Kokola"},
["kzo"] = {"Kaningi"},
["kzp"] = {"Kaidipang"},
["kzq"] = {"Kaike"},
["kzr"] = {"Karang"},
["kzs"] = {"Sugut Dusun"},
["kzu"] = {"Kayupulau"},
["kzv"] = {"Komyandaret"},
["kzw"] = {"Karirí-Xocó"},
["kzx"] = {"Kamarian"},
["kzy"] = {"Kango (Tshopo District)"},
["kzz"] = {"Kalabra"},
["laa"] = {"Southern Subanen"},
["lab"] = {"Linear A"},
["lac"] = {"Lacandon"},
["lad"] = {"Ladino"},
["lae"] = {"Pattani"},
["laf"] = {"Lafofa"},
["lag"] = {"Langi"},
["lah"] = {"Lahnda"},
["lai"] = {"Lambya"},
["laj"] = {"Lango (Uganda)"},
["lal"] = {"Lalia"},
["lam"] = {"Lamba"},
["lan"] = {"Laru"},
["lap"] = {"Laka (Chad)"},
["laq"] = {"Qabiao"},
["lar"] = {"Larteh"},
["las"] = {"Lama (Togo)"},
["lau"] = {"Laba"},
["law"] = {"Lauje"},
["lax"] = {"Tiwa"},
["lay"] = {"Lama Bai"},
["laz"] = {"Aribwatsa"},
["lbb"] = {"Label"},
["lbc"] = {"Lakkia"},
["lbe"] = {"Lak"},
["lbf"] = {"Tinani"},
["lbg"] = {"Laopang"},
["lbi"] = {"La'bi"},
["lbj"] = {"Ladakhi"},
["lbk"] = {"Central Bontok"},
["lbl"] = {"Libon Bikol"},
["lbm"] = {"Lodhi"},
["lbn"] = {"Rmeet"},
["lbo"] = {"Laven"},
["lbq"] = {"Wampar"},
["lbr"] = {"Lohorung"},
["lbs"] = {"Libyan Sign Language"},
["lbt"] = {"Lachi"},
["lbu"] = {"Labu"},
["lbv"] = {"Lavatbura-Lamusong"},
["lbw"] = {"Tolaki"},
["lbx"] = {"Lawangan"},
["lby"] = {"Lamalama", "Lamu-Lamu"},
["lbz"] = {"Lardil"},
["lcc"] = {"Legenyem"},
["lcd"] = {"Lola"},
["lce"] = {"Loncong", "Sekak"},
["lcf"] = {"Lubu"},
["lch"] = {"Luchazi"},
["lcl"] = {"Lisela"},
["lcm"] = {"Tungag"},
["lcp"] = {"Western Lawa"},
["lcq"] = {"Luhu"},
["lcs"] = {"Lisabata-Nuniali"},
["lda"] = {"Kla-Dan"},
["ldb"] = {"Dũya"},
["ldd"] = {"Luri"},
["ldg"] = {"Lenyima"},
["ldh"] = {"Lamja-Dengsa-Tola"},
["ldi"] = {"Laari"},
["ldj"] = {"Lemoro"},
["ldk"] = {"Leelau"},
["ldl"] = {"Kaan"},
["ldm"] = {"Landoma"},
["ldn"] = {"Láadan"},
["ldo"] = {"Loo"},
["ldp"] = {"Tso"},
["ldq"] = {"Lufu"},
["lea"] = {"Lega-Shabunda"},
["leb"] = {"Lala-Bisa"},
["lec"] = {"Leco"},
["led"] = {"Lendu"},
["lee"] = {"Lyélé"},
["lef"] = {"Lelemi"},
["leh"] = {"Lenje"},
["lei"] = {"Lemio"},
["lej"] = {"Lengola"},
["lek"] = {"Leipon"},
["lel"] = {"Lele (Democratic Republic of Congo)"},
["lem"] = {"Nomaande"},
["len"] = {"Lenca"},
["leo"] = {"Leti (Cameroon)"},
["lep"] = {"Lepcha"},
["leq"] = {"Lembena"},
["ler"] = {"Lenkau"},
["les"] = {"Lese"},
["let"] = {"Lesing-Gelimi", "Amio-Gelimi"},
["leu"] = {"Kara (Papua New Guinea)"},
["lev"] = {"Lamma"},
["lew"] = {"Ledo Kaili"},
["lex"] = {"Luang"},
["ley"] = {"Lemolang"},
["lez"] = {"Lezghian"},
["lfa"] = {"Lefa"},
["lfn"] = {"Lingua Franca Nova"},
["lga"] = {"Lungga"},
["lgb"] = {"Laghu"},
["lgg"] = {"Lugbara"},
["lgh"] = {"Laghuu"},
["lgi"] = {"Lengilu"},
["lgk"] = {"Lingarak", "Neverver"},
["lgl"] = {"Wala"},
["lgm"] = {"Lega-Mwenga"},
["lgn"] = {"T'apo", "Opuuo"},
["lgo"] = {"Lango (South Sudan)"},
["lgq"] = {"Logba"},
["lgr"] = {"Lengo"},
["lgt"] = {"Pahi"},
["lgu"] = {"Longgu"},
["lgz"] = {"Ligenza"},
["lha"] = {"Laha (Viet Nam)"},
["lhh"] = {"Laha (Indonesia)"},
["lhi"] = {"Lahu Shi"},
["lhl"] = {"Lahul Lohar"},
["lhm"] = {"Lhomi"},
["lhn"] = {"Lahanan"},
["lhp"] = {"Lhokpu"},
["lhs"] = {"Mlahsö"},
["lht"] = {"Lo-Toga"},
["lhu"] = {"Lahu"},
["lia"] = {"West-Central Limba"},
["lib"] = {"Likum"},
["lic"] = {"Hlai"},
["lid"] = {"Nyindrou"},
["lie"] = {"Likila"},
["lif"] = {"Limbu"},
["lig"] = {"Ligbi"},
["lih"] = {"Lihir"},
["lij"] = {"Ligurian"},
["lik"] = {"Lika"},
["lil"] = {"Lillooet"},
["lio"] = {"Liki"},
["lip"] = {"Sekpele"},
["liq"] = {"Libido"},
["lir"] = {"Liberian English"},
["lis"] = {"Lisu"},
["liu"] = {"Logorik"},
["liv"] = {"Liv"},
["liw"] = {"Col"},
["lix"] = {"Liabuku"},
["liy"] = {"Banda-Bambari"},
["liz"] = {"Libinza"},
["lja"] = {"Golpa"},
["lje"] = {"Rampi"},
["lji"] = {"Laiyolo"},
["ljl"] = {"Li'o"},
["ljp"] = {"Lampung Api"},
["ljw"] = {"Yirandali"},
["ljx"] = {"Yuru"},
["lka"] = {"Lakalei"},
["lkb"] = {"Kabras", "Lukabaras"},
["lkc"] = {"Kucong"},
["lkd"] = {"Lakondê"},
["lke"] = {"Kenyi"},
["lkh"] = {"Lakha"},
["lki"] = {"Laki"},
["lkj"] = {"Remun"},
["lkl"] = {"Laeko-Libuat"},
["lkm"] = {"Kalaamaya"},
["lkn"] = {"Lakon", "Vure"},
["lko"] = {"Khayo", "Olukhayo"},
["lkr"] = {"Päri"},
["lks"] = {"Kisa", "Olushisa"},
["lkt"] = {"Lakota"},
["lku"] = {"Kungkari"},
["lky"] = {"Lokoya"},
["lla"] = {"Lala-Roba"},
["llb"] = {"Lolo"},
["llc"] = {"Lele (Guinea)"},
["lld"] = {"Ladin"},
["lle"] = {"Lele (Papua New Guinea)"},
["llf"] = {"Hermit"},
["llg"] = {"Lole"},
["llh"] = {"Lamu"},
["lli"] = {"Teke-Laali"},
["llj"] = {"Ladji Ladji"},
["llk"] = {"Lelak"},
["lll"] = {"Lilau"},
["llm"] = {"Lasalimu"},
["lln"] = {"Lele (Chad)"},
["llp"] = {"North Efate"},
["llq"] = {"Lolak"},
["lls"] = {"Lithuanian Sign Language"},
["llu"] = {"Lau"},
["llx"] = {"Lauan"},
["lma"] = {"East Limba"},
["lmb"] = {"Merei"},
["lmc"] = {"Limilngan"},
["lmd"] = {"Lumun"},
["lme"] = {"Pévé"},
["lmf"] = {"South Lembata"},
["lmg"] = {"Lamogai"},
["lmh"] = {"Lambichhong"},
["lmi"] = {"Lombi"},
["lmj"] = {"West Lembata"},
["lmk"] = {"Lamkang"},
["lml"] = {"Hano"},
["lmn"] = {"Lambadi"},
["lmo"] = {"Lombard"},
["lmp"] = {"Limbum"},
["lmq"] = {"Lamatuka"},
["lmr"] = {"Lamalera"},
["lmu"] = {"Lamenu"},
["lmv"] = {"Lomaiviti"},
["lmw"] = {"Lake Miwok"},
["lmx"] = {"Laimbue"},
["lmy"] = {"Lamboya"},
["lna"] = {"Langbashe"},
["lnb"] = {"Mbalanhu"},
["lnd"] = {"Lundayeh", "Lun Bawang"},
["lng"] = {"Langobardic"},
["lnh"] = {"Lanoh"},
["lni"] = {"Daantanai'"},
["lnj"] = {"Leningitij"},
["lnl"] = {"South Central Banda"},
["lnm"] = {"Langam"},
["lnn"] = {"Lorediakarkar"},
["lns"] = {"Lamnso'"},
["lnu"] = {"Longuda"},
["lnw"] = {"Lanima"},
["lnz"] = {"Lonzo"},
["loa"] = {"Loloda"},
["lob"] = {"Lobi"},
["loc"] = {"Inonhan"},
["loe"] = {"Saluan"},
["lof"] = {"Logol"},
["log"] = {"Logo"},
["loh"] = {"Narim"},
["loi"] = {"Loma (Côte d'Ivoire)"},
["loj"] = {"Lou"},
["lok"] = {"Loko"},
["lol"] = {"Mongo"},
["lom"] = {"Loma (Liberia)"},
["lon"] = {"Malawi Lomwe"},
["loo"] = {"Lombo"},
["lop"] = {"Lopa"},
["loq"] = {"Lobala"},
["lor"] = {"Téén"},
["los"] = {"Loniu"},
["lot"] = {"Otuho"},
["lou"] = {"Louisiana Creole"},
["lov"] = {"Lopi"},
["low"] = {"Tampias Lobu"},
["lox"] = {"Loun"},
["loy"] = {"Loke"},
["loz"] = {"Lozi"},
["lpa"] = {"Lelepa"},
["lpe"] = {"Lepki"},
["lpn"] = {"Long Phuri Naga"},
["lpo"] = {"Lipo"},
["lpx"] = {"Lopit"},
["lqr"] = {"Logir"},
["lra"] = {"Rara Bakati'"},
["lrc"] = {"Northern Luri"},
["lre"] = {"Laurentian"},
["lrg"] = {"Laragia"},
["lri"] = {"Marachi", "Olumarachi"},
["lrk"] = {"Loarki"},
["lrl"] = {"Lari"},
["lrm"] = {"Marama", "Olumarama"},
["lrn"] = {"Lorang"},
["lro"] = {"Laro"},
["lrr"] = {"Southern Yamphu"},
["lrt"] = {"Larantuka Malay"},
["lrv"] = {"Larevat"},
["lrz"] = {"Lemerig"},
["lsa"] = {"Lasgerdi"},
["lsb"] = {"Burundian Sign Language", "Langue des Signes Burundaise"},
["lsc"] = {"Albarradas Sign Language", "Lengua de señas Albarradas"},
["lsd"] = {"Lishana Deni"},
["lse"] = {"Lusengo"},
["lsh"] = {"Lish"},
["lsi"] = {"Lashi"},
["lsl"] = {"Latvian Sign Language"},
["lsm"] = {"Saamia", "Olusamia"},
["lsn"] = {"Tibetan Sign Language"},
["lso"] = {"Laos Sign Language"},
["lsp"] = {"Panamanian Sign Language", "Lengua de Señas Panameñas"},
["lsr"] = {"Aruop"},
["lss"] = {"Lasi"},
["lst"] = {"Trinidad and Tobago Sign Language"},
["lsv"] = {"Sivia Sign Language"},
["lsw"] = {"Seychelles Sign Language", "Lalang Siny Seselwa", "Langue des Signes Seychelloise"},
["lsy"] = {"Mauritian Sign Language"},
["ltc"] = {"Late Middle Chinese"},
["ltg"] = {"Latgalian"},
["lth"] = {"Thur"},
["lti"] = {"Leti (Indonesia)"},
["ltn"] = {"Latundê"},
["lto"] = {"Tsotso", "Olutsotso"},
["lts"] = {"Tachoni", "Lutachoni"},
["ltu"] = {"Latu"},
["lua"] = {"Luba-Lulua"},
["luc"] = {"Aringa"},
["lud"] = {"Ludian"},
["lue"] = {"Luvale"},
["luf"] = {"Laua"},
["lui"] = {"Luiseno"},
["luj"] = {"Luna"},
["luk"] = {"Lunanakha"},
["lul"] = {"Olu'bo"},
["lum"] = {"Luimbi"},
["lun"] = {"Lunda"},
["luo"] = {"Luo (Kenya and Tanzania)", "Dholuo"},
["lup"] = {"Lumbu"},
["luq"] = {"Lucumi"},
["lur"] = {"Laura"},
["lus"] = {"Lushai"},
["lut"] = {"Lushootseed"},
["luu"] = {"Lumba-Yakkha"},
["luv"] = {"Luwati"},
["luw"] = {"Luo (Cameroon)"},
["luy"] = {"Luyia", "Oluluyia"},
["luz"] = {"Southern Luri"},
["lva"] = {"Maku'a"},
["lvi"] = {"Lavi"},
["lvk"] = {"Lavukaleve"},
["lvs"] = {"Standard Latvian"},
["lvu"] = {"Levuka"},
["lwa"] = {"Lwalu"},
["lwe"] = {"Lewo Eleng"},
["lwg"] = {"Wanga", "Oluwanga"},
["lwh"] = {"White Lachi"},
["lwl"] = {"Eastern Lawa"},
["lwm"] = {"Laomian"},
["lwo"] = {"Luwo"},
["lws"] = {"Malawian Sign Language"},
["lwt"] = {"Lewotobi"},
["lwu"] = {"Lawu"},
["lww"] = {"Lewo"},
["lxm"] = {"Lakurumau"},
["lya"] = {"Layakha"},
["lyg"] = {"Lyngngam"},
["lyn"] = {"Luyana"},
["lzh"] = {"Literary Chinese"},
["lzl"] = {"Litzlitz"},
["lzn"] = {"Leinong Naga"},
["lzz"] = {"Laz"},
["maa"] = {"San Jerónimo Tecóatl Mazatec"},
["mab"] = {"Yutanduchi Mixtec"},
["mad"] = {"Madurese"},
["mae"] = {"Bo-Rukul"},
["maf"] = {"Mafa"},
["mag"] = {"Magahi"},
["mai"] = {"Maithili"},
["maj"] = {"Jalapa De Díaz Mazatec"},
["mak"] = {"Makasar"},
["mam"] = {"Mam"},
["man"] = {"Mandingo", "Manding"},
["map"] = {"Austronesian languages"},
["maq"] = {"Chiquihuitlán Mazatec"},
["mas"] = {"Masai"},
["mat"] = {"San Francisco Matlatzinca"},
["mau"] = {"Huautla Mazatec"},
["mav"] = {"Sateré-Mawé"},
["maw"] = {"Mampruli"},
["max"] = {"North Moluccan Malay"},
["maz"] = {"Central Mazahua"},
["mba"] = {"Higaonon"},
["mbb"] = {"Western Bukidnon Manobo"},
["mbc"] = {"Macushi"},
["mbd"] = {"Dibabawon Manobo"},
["mbe"] = {"Molale"},
["mbf"] = {"Baba Malay"},
["mbh"] = {"Mangseng"},
["mbi"] = {"Ilianen Manobo"},
["mbj"] = {"Nadëb"},
["mbk"] = {"Malol"},
["mbl"] = {"Maxakalí"},
["mbm"] = {"Ombamba"},
["mbn"] = {"Macaguán"},
["mbo"] = {"Mbo (Cameroon)"},
["mbp"] = {"Malayo"},
["mbq"] = {"Maisin"},
["mbr"] = {"Nukak Makú"},
["mbs"] = {"Sarangani Manobo"},
["mbt"] = {"Matigsalug Manobo"},
["mbu"] = {"Mbula-Bwazza"},
["mbv"] = {"Mbulungish"},
["mbw"] = {"Maring"},
["mbx"] = {"Mari (East Sepik Province)"},
["mby"] = {"Memoni"},
["mbz"] = {"Amoltepec Mixtec"},
["mca"] = {"Maca"},
["mcb"] = {"Machiguenga"},
["mcc"] = {"Bitur"},
["mcd"] = {"Sharanahua"},
["mce"] = {"Itundujia Mixtec"},
["mcf"] = {"Matsés"},
["mcg"] = {"Mapoyo"},
["mch"] = {"Maquiritari"},
["mci"] = {"Mese"},
["mcj"] = {"Mvanip"},
["mck"] = {"Mbunda"},
["mcl"] = {"Macaguaje"},
["mcm"] = {"Malaccan Creole Portuguese"},
["mcn"] = {"Masana"},
["mco"] = {"Coatlán Mixe"},
["mcp"] = {"Makaa"},
["mcq"] = {"Ese"},
["mcr"] = {"Menya"},
["mcs"] = {"Mambai"},
["mct"] = {"Mengisa"},
["mcu"] = {"Cameroon Mambila"},
["mcv"] = {"Minanibai"},
["mcw"] = {"Mawa (Chad)"},
["mcx"] = {"Mpiemo"},
["mcy"] = {"South Watut"},
["mcz"] = {"Mawan"},
["mda"] = {"Mada (Nigeria)"},
["mdb"] = {"Morigi"},
["mdc"] = {"Male (Papua New Guinea)"},
["mdd"] = {"Mbum"},
["mde"] = {"Maba (Chad)"},
["mdf"] = {"Moksha"},
["mdg"] = {"Massalat"},
["mdh"] = {"Maguindanaon"},
["mdi"] = {"Mamvu"},
["mdj"] = {"Mangbetu"},
["mdk"] = {"Mangbutu"},
["mdl"] = {"Maltese Sign Language"},
["mdm"] = {"Mayogo"},
["mdn"] = {"Mbati"},
["mdp"] = {"Mbala"},
["mdq"] = {"Mbole"},
["mdr"] = {"Mandar"},
["mds"] = {"Maria (Papua New Guinea)"},
["mdt"] = {"Mbere"},
["mdu"] = {"Mboko"},
["mdv"] = {"Santa Lucía Monteverde Mixtec"},
["mdw"] = {"Mbosi"},
["mdx"] = {"Dizin"},
["mdy"] = {"Male (Ethiopia)"},
["mdz"] = {"Suruí Do Pará"},
["mea"] = {"Menka"},
["meb"] = {"Ikobi"},
["mec"] = {"Marra"},
["med"] = {"Melpa"},
["mee"] = {"Mengen"},
["mef"] = {"Megam"},
["meh"] = {"Southwestern Tlaxiaco Mixtec"},
["mei"] = {"Midob"},
["mej"] = {"Meyah"},
["mek"] = {"Mekeo"},
["mel"] = {"Central Melanau"},
["mem"] = {"Mangala"},
["men"] = {"Mende (Sierra Leone)"},
["meo"] = {"Kedah Malay"},
["mep"] = {"Miriwoong"},
["meq"] = {"Merey"},
["mer"] = {"Meru"},
["mes"] = {"Masmaje"},
["met"] = {"Mato"},
["meu"] = {"Motu"},
["mev"] = {"Mano"},
["mew"] = {"Maaka"},
["mey"] = {"Hassaniyya"},
["mez"] = {"Menominee"},
["mfa"] = {"Pattani Malay"},
["mfb"] = {"Bangka"},
["mfc"] = {"Mba"},
["mfd"] = {"Mendankwe-Nkwen"},
["mfe"] = {"Morisyen"},
["mff"] = {"Naki"},
["mfg"] = {"Mogofin"},
["mfh"] = {"Matal"},
["mfi"] = {"Wandala"},
["mfj"] = {"Mefele"},
["mfk"] = {"North Mofu"},
["mfl"] = {"Putai"},
["mfm"] = {"Marghi South"},
["mfn"] = {"Cross River Mbembe"},
["mfo"] = {"Mbe"},
["mfp"] = {"Makassar Malay"},
["mfq"] = {"Moba"},
["mfr"] = {"Marrithiyel"},
["mfs"] = {"Mexican Sign Language"},
["mft"] = {"Mokerang"},
["mfu"] = {"Mbwela"},
["mfv"] = {"Mandjak"},
["mfw"] = {"Mulaha"},
["mfx"] = {"Melo"},
["mfy"] = {"Mayo"},
["mfz"] = {"Mabaan"},
["mga"] = {"Middle Irish (900-1200)"},
["mgb"] = {"Mararit"},
["mgc"] = {"Morokodo"},
["mgd"] = {"Moru"},
["mge"] = {"Mango"},
["mgf"] = {"Maklew"},
["mgg"] = {"Mpumpong"},
["mgh"] = {"Makhuwa-Meetto"},
["mgi"] = {"Lijili"},
["mgj"] = {"Abureni"},
["mgk"] = {"Mawes"},
["mgl"] = {"Maleu-Kilenge"},
["mgm"] = {"Mambae"},
["mgn"] = {"Mbangi"},
["mgo"] = {"Meta'"},
["mgp"] = {"Eastern Magar"},
["mgq"] = {"Malila"},
["mgr"] = {"Mambwe-Lungu"},
["mgs"] = {"Manda (Tanzania)"},
["mgt"] = {"Mongol"},
["mgu"] = {"Mailu"},
["mgv"] = {"Matengo"},
["mgw"] = {"Matumbi"},
["mgy"] = {"Mbunga"},
["mgz"] = {"Mbugwe"},
["mha"] = {"Manda (India)"},
["mhb"] = {"Mahongwe"},
["mhc"] = {"Mocho"},
["mhd"] = {"Mbugu"},
["mhe"] = {"Besisi", "Mah Meri"},
["mhf"] = {"Mamaa"},
["mhg"] = {"Margu"},
["mhi"] = {"Ma'di"},
["mhj"] = {"Mogholi"},
["mhk"] = {"Mungaka"},
["mhl"] = {"Mauwake"},
["mhm"] = {"Makhuwa-Moniga"},
["mhn"] = {"Mócheno"},
["mho"] = {"Mashi (Zambia)"},
["mhp"] = {"Balinese Malay"},
["mhq"] = {"Mandan"},
["mhr"] = {"Eastern Mari"},
["mhs"] = {"Buru (Indonesia)"},
["mht"] = {"Mandahuaca"},
["mhu"] = {"Digaro-Mishmi", "Darang Deng"},
["mhw"] = {"Mbukushu"},
["mhx"] = {"Maru", "Lhaovo"},
["mhy"] = {"Ma'anyan"},
["mhz"] = {"Mor (Mor Islands)"},
["mia"] = {"Miami"},
["mib"] = {"Atatláhuca Mixtec"},
["mic"] = {"Mi'kmaq", "Micmac"},
["mid"] = {"Mandaic"},
["mie"] = {"Ocotepec Mixtec"},
["mif"] = {"Mofu-Gudur"},
["mig"] = {"San Miguel El Grande Mixtec"},
["mih"] = {"Chayuco Mixtec"},
["mii"] = {"Chigmecatitlán Mixtec"},
["mij"] = {"Abar", "Mungbam"},
["mik"] = {"Mikasuki"},
["mil"] = {"Peñoles Mixtec"},
["mim"] = {"Alacatlatzala Mixtec"},
["min"] = {"Minangkabau"},
["mio"] = {"Pinotepa Nacional Mixtec"},
["mip"] = {"Apasco-Apoala Mixtec"},
["miq"] = {"Mískito"},
["mir"] = {"Isthmus Mixe"},
["mis"] = {"Uncoded languages"},
["mit"] = {"Southern Puebla Mixtec"},
["miu"] = {"Cacaloxtepec Mixtec"},
["miw"] = {"Akoye"},
["mix"] = {"Mixtepec Mixtec"},
["miy"] = {"Ayutla Mixtec"},
["miz"] = {"Coatzospan Mixtec"},
["mjb"] = {"Makalero"},
["mjc"] = {"San Juan Colorado Mixtec"},
["mjd"] = {"Northwest Maidu"},
["mje"] = {"Muskum"},
["mjg"] = {"Tu"},
["mjh"] = {"Mwera (Nyasa)"},
["mji"] = {"Kim Mun"},
["mjj"] = {"Mawak"},
["mjk"] = {"Matukar"},
["mjl"] = {"Mandeali"},
["mjm"] = {"Medebur"},
["mjn"] = {"Ma (Papua New Guinea)"},
["mjo"] = {"Malankuravan"},
["mjp"] = {"Malapandaram"},
["mjq"] = {"Malaryan"},
["mjr"] = {"Malavedan"},
["mjs"] = {"Miship"},
["mjt"] = {"Sauria Paharia"},
["mju"] = {"Manna-Dora"},
["mjv"] = {"Mannan"},
["mjw"] = {"Karbi"},
["mjx"] = {"Mahali"},
["mjy"] = {"Mahican"},
["mjz"] = {"Majhi"},
["mka"] = {"Mbre"},
["mkb"] = {"Mal Paharia"},
["mkc"] = {"Siliput"},
["mke"] = {"Mawchi"},
["mkf"] = {"Miya"},
["mkg"] = {"Mak (China)"},
["mkh"] = {"Mon-Khmer languages"},
["mki"] = {"Dhatki"},
["mkj"] = {"Mokilese"},
["mkk"] = {"Byep"},
["mkl"] = {"Mokole"},
["mkm"] = {"Moklen"},
["mkn"] = {"Kupang Malay"},
["mko"] = {"Mingang Doso"},
["mkp"] = {"Moikodi"},
["mkq"] = {"Bay Miwok"},
["mkr"] = {"Malas"},
["mks"] = {"Silacayoapan Mixtec"},
["mkt"] = {"Vamale"},
["mku"] = {"Konyanka Maninka"},
["mkv"] = {"Mafea"},
["mkw"] = {"Kituba (Congo)"},
["mkx"] = {"Kinamiging Manobo"},
["mky"] = {"East Makian"},
["mkz"] = {"Makasae"},
["mla"] = {"Malo"},
["mlb"] = {"Mbule"},
["mlc"] = {"Cao Lan"},
["mle"] = {"Manambu"},
["mlf"] = {"Mal"},
["mlh"] = {"Mape"},
["mli"] = {"Malimpung"},
["mlj"] = {"Miltu"},
["mlk"] = {"Ilwana", "Kiwilwana"},
["mll"] = {"Malua Bay"},
["mlm"] = {"Mulam"},
["mln"] = {"Malango"},
["mlo"] = {"Mlomp"},
["mlp"] = {"Bargam"},
["mlq"] = {"Western Maninkakan"},
["mlr"] = {"Vame"},
["mls"] = {"Masalit"},
["mlu"] = {"To'abaita"},
["mlv"] = {"Motlav", "Mwotlap"},
["mlw"] = {"Moloko"},
["mlx"] = {"Malfaxal", "Naha'ai"},
["mlz"] = {"Malaynon"},
["mma"] = {"Mama"},
["mmb"] = {"Momina"},
["mmc"] = {"Michoacán Mazahua"},
["mmd"] = {"Maonan"},
["mme"] = {"Mae"},
["mmf"] = {"Mundat"},
["mmg"] = {"North Ambrym"},
["mmh"] = {"Mehináku"},
["mmi"] = {"Musar"},
["mmj"] = {"Majhwar"},
["mmk"] = {"Mukha-Dora"},
["mml"] = {"Man Met"},
["mmm"] = {"Maii"},
["mmn"] = {"Mamanwa"},
["mmo"] = {"Mangga Buang"},
["mmp"] = {"Siawi"},
["mmq"] = {"Musak"},
["mmr"] = {"Western Xiangxi Miao"},
["mmt"] = {"Malalamai"},
["mmu"] = {"Mmaala"},
["mmv"] = {"Miriti"},
["mmw"] = {"Emae"},
["mmx"] = {"Madak"},
["mmy"] = {"Migaama"},
["mmz"] = {"Mabaale"},
["mna"] = {"Mbula"},
["mnb"] = {"Muna"},
["mnc"] = {"Manchu"},
["mnd"] = {"Mondé"},
["mne"] = {"Naba"},
["mnf"] = {"Mundani"},
["mng"] = {"Eastern Mnong"},
["mnh"] = {"Mono (Democratic Republic of Congo)"},
["mni"] = {"Manipuri"},
["mnj"] = {"Munji"},
["mnk"] = {"Mandinka"},
["mnl"] = {"Tiale"},
["mnm"] = {"Mapena"},
["mnn"] = {"Southern Mnong"},
["mno"] = {"Manobo languages"},
["mnp"] = {"Min Bei Chinese"},
["mnq"] = {"Minriq"},
["mnr"] = {"Mono (USA)"},
["mns"] = {"Mansi"},
["mnu"] = {"Mer"},
["mnv"] = {"Rennell-Bellona"},
["mnw"] = {"Mon"},
["mnx"] = {"Manikion"},
["mny"] = {"Manyawa"},
["mnz"] = {"Moni"},
["moa"] = {"Mwan"},
["moc"] = {"Mocoví"},
["mod"] = {"Mobilian"},
["moe"] = {"Innu", "Montagnais"},
["mog"] = {"Mongondow"},
["moh"] = {"Mohawk"},
["moi"] = {"Mboi"},
["moj"] = {"Monzombo"},
["mok"] = {"Morori"},
["mom"] = {"Mangue"},
["moo"] = {"Monom"},
["mop"] = {"Mopán Maya"},
["moq"] = {"Mor (Bomberai Peninsula)"},
["mor"] = {"Moro"},
["mos"] = {"Mossi"},
["mot"] = {"Barí"},
["mou"] = {"Mogum"},
["mov"] = {"Mohave"},
["mow"] = {"Moi (Congo)"},
["mox"] = {"Molima"},
["moy"] = {"Shekkacho"},
["moz"] = {"Mukulu", "Gergiko"},
["mpa"] = {"Mpoto"},
["mpb"] = {"Malak Malak", "Mullukmulluk"},
["mpc"] = {"Mangarrayi"},
["mpd"] = {"Machinere"},
["mpe"] = {"Majang"},
["mpg"] = {"Marba"},
["mph"] = {"Maung"},
["mpi"] = {"Mpade"},
["mpj"] = {"Martu Wangka", "Wangkajunga"},
["mpk"] = {"Mbara (Chad)"},
["mpl"] = {"Middle Watut"},
["mpm"] = {"Yosondúa Mixtec"},
["mpn"] = {"Mindiri"},
["mpo"] = {"Miu"},
["mpp"] = {"Migabac"},
["mpq"] = {"Matís"},
["mpr"] = {"Vangunu"},
["mps"] = {"Dadibi"},
["mpt"] = {"Mian"},
["mpu"] = {"Makuráp"},
["mpv"] = {"Mungkip"},
["mpw"] = {"Mapidian"},
["mpx"] = {"Misima-Panaeati"},
["mpy"] = {"Mapia"},
["mpz"] = {"Mpi"},
["mqa"] = {"Maba (Indonesia)"},
["mqb"] = {"Mbuko"},
["mqc"] = {"Mangole"},
["mqe"] = {"Matepi"},
["mqf"] = {"Momuna"},
["mqg"] = {"Kota Bangun Kutai Malay"},
["mqh"] = {"Tlazoyaltepec Mixtec"},
["mqi"] = {"Mariri"},
["mqj"] = {"Mamasa"},
["mqk"] = {"Rajah Kabunsuwan Manobo"},
["mql"] = {"Mbelime"},
["mqm"] = {"South Marquesan"},
["mqn"] = {"Moronene"},
["mqo"] = {"Modole"},
["mqp"] = {"Manipa"},
["mqq"] = {"Minokok"},
["mqr"] = {"Mander"},
["mqs"] = {"West Makian"},
["mqt"] = {"Mok"},
["mqu"] = {"Mandari"},
["mqv"] = {"Mosimo"},
["mqw"] = {"Murupi"},
["mqx"] = {"Mamuju"},
["mqy"] = {"Manggarai"},
["mqz"] = {"Pano"},
["mra"] = {"Mlabri"},
["mrb"] = {"Marino"},
["mrc"] = {"Maricopa"},
["mrd"] = {"Western Magar"},
["mre"] = {"Martha's Vineyard Sign Language"},
["mrf"] = {"Elseng"},
["mrg"] = {"Mising"},
["mrh"] = {"Mara Chin"},
["mrj"] = {"Western Mari"},
["mrk"] = {"Hmwaveke"},
["mrl"] = {"Mortlockese"},
["mrm"] = {"Merlav", "Mwerlap"},
["mrn"] = {"Cheke Holo"},
["mro"] = {"Mru"},
["mrp"] = {"Morouas"},
["mrq"] = {"North Marquesan"},
["mrr"] = {"Maria (India)"},
["mrs"] = {"Maragus"},
["mrt"] = {"Marghi Central"},
["mru"] = {"Mono (Cameroon)"},
["mrv"] = {"Mangareva"},
["mrw"] = {"Maranao"},
["mrx"] = {"Maremgi", "Dineor"},
["mry"] = {"Mandaya"},
["mrz"] = {"Marind"},
["msb"] = {"Masbatenyo"},
["msc"] = {"Sankaran Maninka"},
["msd"] = {"Yucatec Maya Sign Language"},
["mse"] = {"Musey"},
["msf"] = {"Mekwei"},
["msg"] = {"Moraid"},
["msh"] = {"Masikoro Malagasy"},
["msi"] = {"Sabah Malay"},
["msj"] = {"Ma (Democratic Republic of Congo)"},
["msk"] = {"Mansaka"},
["msl"] = {"Molof", "Poule"},
["msm"] = {"Agusan Manobo"},
["msn"] = {"Vurës"},
["mso"] = {"Mombum"},
["msp"] = {"Maritsauá"},
["msq"] = {"Caac"},
["msr"] = {"Mongolian Sign Language"},
["mss"] = {"West Masela"},
["msu"] = {"Musom"},
["msv"] = {"Maslam"},
["msw"] = {"Mansoanka"},
["msx"] = {"Moresada"},
["msy"] = {"Aruamu"},
["msz"] = {"Momare"},
["mta"] = {"Cotabato Manobo"},
["mtb"] = {"Anyin Morofo"},
["mtc"] = {"Munit"},
["mtd"] = {"Mualang"},
["mte"] = {"Mono (Solomon Islands)"},
["mtf"] = {"Murik (Papua New Guinea)"},
["mtg"] = {"Una"},
["mth"] = {"Munggui"},
["mti"] = {"Maiwa (Papua New Guinea)"},
["mtj"] = {"Moskona"},
["mtk"] = {"Mbe'"},
["mtl"] = {"Montol"},
["mtm"] = {"Mator"},
["mtn"] = {"Matagalpa"},
["mto"] = {"Totontepec Mixe"},
["mtp"] = {"Wichí Lhamtés Nocten"},
["mtq"] = {"Muong"},
["mtr"] = {"Mewari"},
["mts"] = {"Yora"},
["mtt"] = {"Mota"},
["mtu"] = {"Tututepec Mixtec"},
["mtv"] = {"Asaro'o"},
["mtw"] = {"Southern Binukidnon"},
["mtx"] = {"Tidaá Mixtec"},
["mty"] = {"Nabi"},
["mua"] = {"Mundang"},
["mub"] = {"Mubi"},
["muc"] = {"Ajumbu"},
["mud"] = {"Mednyj Aleut"},
["mue"] = {"Media Lengua"},
["mug"] = {"Musgu"},
["muh"] = {"Mündü"},
["mui"] = {"Musi"},
["muj"] = {"Mabire"},
["muk"] = {"Mugom"},
["mul"] = {"Multiple languages"},
["mum"] = {"Maiwala"},
["mun"] = {"Munda languages"},
["muo"] = {"Nyong"},
["mup"] = {"Malvi"},
["muq"] = {"Eastern Xiangxi Miao"},
["mur"] = {"Murle"},
["mus"] = {"Creek"},
["mut"] = {"Western Muria"},
["muu"] = {"Yaaku"},
["muv"] = {"Muthuvan"},
["mux"] = {"Bo-Ung"},
["muy"] = {"Muyang"},
["muz"] = {"Mursi"},
["mva"] = {"Manam"},
["mvb"] = {"Mattole"},
["mvd"] = {"Mamboru"},
["mve"] = {"Marwari (Pakistan)"},
["mvf"] = {"Peripheral Mongolian"},
["mvg"] = {"Yucuañe Mixtec"},
["mvh"] = {"Mulgi"},
["mvi"] = {"Miyako"},
["mvk"] = {"Mekmek"},
["mvl"] = {"Mbara (Australia)"},
["mvn"] = {"Minaveha"},
["mvo"] = {"Marovo"},
["mvp"] = {"Duri"},
["mvq"] = {"Moere"},
["mvr"] = {"Marau"},
["mvs"] = {"Massep"},
["mvt"] = {"Mpotovoro"},
["mvu"] = {"Marfa"},
["mvv"] = {"Tagal Murut"},
["mvw"] = {"Machinga"},
["mvx"] = {"Meoswar"},
["mvy"] = {"Indus Kohistani"},
["mvz"] = {"Mesqan"},
["mwa"] = {"Mwatebu"},
["mwb"] = {"Juwal"},
["mwc"] = {"Are"},
["mwe"] = {"Mwera (Chimwera)"},
["mwf"] = {"Murrinh-Patha"},
["mwg"] = {"Aiklep"},
["mwh"] = {"Mouk-Aria"},
["mwi"] = {"Labo", "Ninde"},
["mwk"] = {"Kita Maninkakan"},
["mwl"] = {"Mirandese"},
["mwm"] = {"Sar"},
["mwn"] = {"Nyamwanga"},
["mwo"] = {"Central Maewo"},
["mwp"] = {"Kala Lagaw Ya"},
["mwq"] = {"Mün Chin"},
["mwr"] = {"Marwari"},
["mws"] = {"Mwimbi-Muthambi"},
["mwt"] = {"Moken"},
["mwu"] = {"Mittu"},
["mwv"] = {"Mentawai"},
["mww"] = {"Hmong Daw"},
["mwz"] = {"Moingi"},
["mxa"] = {"Northwest Oaxaca Mixtec"},
["mxb"] = {"Tezoatlán Mixtec"},
["mxc"] = {"Manyika"},
["mxd"] = {"Modang"},
["mxe"] = {"Mele-Fila"},
["mxf"] = {"Malgbe"},
["mxg"] = {"Mbangala"},
["mxh"] = {"Mvuba"},
["mxi"] = {"Mozarabic"},
["mxj"] = {"Miju-Mishmi", "Geman Deng"},
["mxk"] = {"Monumbo"},
["mxl"] = {"Maxi Gbe"},
["mxm"] = {"Meramera"},
["mxn"] = {"Moi (Indonesia)"},
["mxo"] = {"Mbowe"},
["mxp"] = {"Tlahuitoltepec Mixe"},
["mxq"] = {"Juquila Mixe"},
["mxr"] = {"Murik (Malaysia)"},
["mxs"] = {"Huitepec Mixtec"},
["mxt"] = {"Jamiltepec Mixtec"},
["mxu"] = {"Mada (Cameroon)"},
["mxv"] = {"Metlatónoc Mixtec"},
["mxw"] = {"Namo"},
["mxx"] = {"Mahou", "Mawukakan"},
["mxy"] = {"Southeastern Nochixtlán Mixtec"},
["mxz"] = {"Central Masela"},
["myb"] = {"Mbay"},
["myc"] = {"Mayeka"},
["mye"] = {"Myene"},
["myf"] = {"Bambassi"},
["myg"] = {"Manta"},
["myh"] = {"Makah"},
["myj"] = {"Mangayat"},
["myk"] = {"Mamara Senoufo"},
["myl"] = {"Moma"},
["mym"] = {"Me'en"},
["myn"] = {"Mayan languages"},
["myo"] = {"Anfillo"},
["myp"] = {"Pirahã"},
["myr"] = {"Muniche"},
["mys"] = {"Mesmes"},
["myu"] = {"Mundurukú"},
["myv"] = {"Erzya"},
["myw"] = {"Muyuw"},
["myx"] = {"Masaaba"},
["myy"] = {"Macuna"},
["myz"] = {"Classical Mandaic"},
["mza"] = {"Santa María Zacatepec Mixtec"},
["mzb"] = {"Tumzabt"},
["mzc"] = {"Madagascar Sign Language"},
["mzd"] = {"Malimba"},
["mze"] = {"Morawa"},
["mzg"] = {"Monastic Sign Language"},
["mzh"] = {"Wichí Lhamtés Güisnay"},
["mzi"] = {"Ixcatlán Mazatec"},
["mzj"] = {"Manya"},
["mzk"] = {"Nigeria Mambila"},
["mzl"] = {"Mazatlán Mixe"},
["mzm"] = {"Mumuye"},
["mzn"] = {"Mazanderani"},
["mzo"] = {"Matipuhy"},
["mzp"] = {"Movima"},
["mzq"] = {"Mori Atas"},
["mzr"] = {"Marúbo"},
["mzs"] = {"Macanese"},
["mzt"] = {"Mintil"},
["mzu"] = {"Inapang"},
["mzv"] = {"Manza"},
["mzw"] = {"Deg"},
["mzx"] = {"Mawayana"},
["mzy"] = {"Mozambican Sign Language"},
["mzz"] = {"Maiadomu"},
["naa"] = {"Namla"},
["nab"] = {"Southern Nambikuára"},
["nac"] = {"Narak"},
["nae"] = {"Naka'ela"},
["naf"] = {"Nabak"},
["nag"] = {"Naga Pidgin"},
["nah"] = {"Nahuatl languages"},
["nai"] = {"North American Indian languages"},
["naj"] = {"Nalu"},
["nak"] = {"Nakanai"},
["nal"] = {"Nalik"},
["nam"] = {"Ngan'gityemerri"},
["nan"] = {"Min Nan Chinese"},
["nao"] = {"Naaba"},
["nap"] = {"Neapolitan"},
["naq"] = {"Khoekhoe", "Nama (Namibia)"},
["nar"] = {"Iguta"},
["nas"] = {"Naasioi"},
["nat"] = {"Ca̱hungwa̱rya̱", "Hungworo"},
["naw"] = {"Nawuri"},
["nax"] = {"Nakwi"},
["nay"] = {"Ngarrindjeri"},
["naz"] = {"Coatepec Nahuatl"},
["nba"] = {"Nyemba"},
["nbb"] = {"Ndoe"},
["nbc"] = {"Chang Naga"},
["nbd"] = {"Ngbinda"},
["nbe"] = {"Konyak Naga"},
["nbg"] = {"Nagarchal"},
["nbh"] = {"Ngamo"},
["nbi"] = {"Mao Naga"},
["nbj"] = {"Ngarinyman"},
["nbk"] = {"Nake"},
["nbm"] = {"Ngbaka Ma'bo"},
["nbn"] = {"Kuri"},
["nbo"] = {"Nkukoli"},
["nbp"] = {"Nnam"},
["nbq"] = {"Nggem"},
["nbr"] = {"Numana"},
["nbs"] = {"Namibian Sign Language"},
["nbt"] = {"Na"},
["nbu"] = {"Rongmei Naga"},
["nbv"] = {"Ngamambo"},
["nbw"] = {"Southern Ngbandi"},
["nby"] = {"Ningera"},
["nca"] = {"Iyo"},
["ncb"] = {"Central Nicobarese"},
["ncc"] = {"Ponam"},
["ncd"] = {"Nachering"},
["nce"] = {"Yale"},
["ncf"] = {"Notsi"},
["ncg"] = {"Nisga'a"},
["nch"] = {"Central Huasteca Nahuatl"},
["nci"] = {"Classical Nahuatl"},
["ncj"] = {"Northern Puebla Nahuatl"},
["nck"] = {"Na-kara"},
["ncl"] = {"Michoacán Nahuatl"},
["ncm"] = {"Nambo"},
["ncn"] = {"Nauna"},
["nco"] = {"Sibe"},
["ncq"] = {"Northern Katang"},
["ncr"] = {"Ncane"},
["ncs"] = {"Nicaraguan Sign Language"},
["nct"] = {"Chothe Naga"},
["ncu"] = {"Chumburung"},
["ncx"] = {"Central Puebla Nahuatl"},
["ncz"] = {"Natchez"},
["nda"] = {"Ndasa"},
["ndb"] = {"Kenswei Nsei"},
["ndc"] = {"Ndau"},
["ndd"] = {"Nde-Nsele-Nta"},
["ndf"] = {"Nadruvian"},
["ndg"] = {"Ndengereko"},
["ndh"] = {"Ndali"},
["ndi"] = {"Samba Leko"},
["ndj"] = {"Ndamba"},
["ndk"] = {"Ndaka"},
["ndl"] = {"Ndolo"},
["ndm"] = {"Ndam"},
["ndn"] = {"Ngundi"},
["ndp"] = {"Ndo"},
["ndq"] = {"Ndombe"},
["ndr"] = {"Ndoola"},
["nds"] = {"Low German", "Low Saxon"},
["ndt"] = {"Ndunga"},
["ndu"] = {"Dugun"},
["ndv"] = {"Ndut"},
["ndw"] = {"Ndobo"},
["ndx"] = {"Nduga"},
["ndy"] = {"Lutos"},
["ndz"] = {"Ndogo"},
["nea"] = {"Eastern Ngad'a"},
["neb"] = {"Toura (Côte d'Ivoire)"},
["nec"] = {"Nedebang"},
["ned"] = {"Nde-Gbite"},
["nee"] = {"Nêlêmwa-Nixumwak"},
["nef"] = {"Nefamese"},
["neg"] = {"Negidal"},
["neh"] = {"Nyenkha"},
["nei"] = {"Neo-Hittite"},
["nej"] = {"Neko"},
["nek"] = {"Neku"},
["nem"] = {"Nemi"},
["nen"] = {"Nengone"},
["neo"] = {"Ná-Meo"},
["neq"] = {"North Central Mixe"},
["ner"] = {"Yahadian"},
["nes"] = {"Bhoti Kinnauri"},
["net"] = {"Nete"},
["neu"] = {"Neo"},
["nev"] = {"Nyaheun"},
["new"] = {"Newari", "Nepal Bhasa"},
["nex"] = {"Neme"},
["ney"] = {"Neyo"},
["nez"] = {"Nez Perce"},
["nfa"] = {"Dhao"},
["nfd"] = {"Ahwai"},
["nfl"] = {"Ayiwo", "Äiwoo"},
["nfr"] = {"Nafaanra"},
["nfu"] = {"Mfumte"},
["nga"] = {"Ngbaka"},
["ngb"] = {"Northern Ngbandi"},
["ngc"] = {"Ngombe (Democratic Republic of Congo)"},
["ngd"] = {"Ngando (Central African Republic)"},
["nge"] = {"Ngemba"},
["ngf"] = {"Trans-New Guinea languages"},
["ngg"] = {"Ngbaka Manza"},
["ngh"] = {"Nǁng"},
["ngi"] = {"Ngizim"},
["ngj"] = {"Ngie"},
["ngk"] = {"Dalabon"},
["ngl"] = {"Lomwe"},
["ngm"] = {"Ngatik Men's Creole"},
["ngn"] = {"Ngwo"},
["ngp"] = {"Ngulu"},
["ngq"] = {"Ngurimi", "Ngoreme"},
["ngr"] = {"Engdewu"},
["ngs"] = {"Gvoko"},
["ngt"] = {"Kriang", "Ngeq"},
["ngu"] = {"Guerrero Nahuatl"},
["ngv"] = {"Nagumi"},
["ngw"] = {"Ngwaba"},
["ngx"] = {"Nggwahyi"},
["ngy"] = {"Tibea"},
["ngz"] = {"Ngungwel"},
["nha"] = {"Nhanda"},
["nhb"] = {"Beng"},
["nhc"] = {"Tabasco Nahuatl"},
["nhd"] = {"Chiripá", "Ava Guaraní"},
["nhe"] = {"Eastern Huasteca Nahuatl"},
["nhf"] = {"Nhuwala"},
["nhg"] = {"Tetelcingo Nahuatl"},
["nhh"] = {"Nahari"},
["nhi"] = {"Zacatlán-Ahuacatlán-Tepetzintla Nahuatl"},
["nhk"] = {"Isthmus-Cosoleacaque Nahuatl"},
["nhm"] = {"Morelos Nahuatl"},
["nhn"] = {"Central Nahuatl"},
["nho"] = {"Takuu"},
["nhp"] = {"Isthmus-Pajapan Nahuatl"},
["nhq"] = {"Huaxcaleca Nahuatl"},
["nhr"] = {"Naro"},
["nht"] = {"Ometepec Nahuatl"},
["nhu"] = {"Noone"},
["nhv"] = {"Temascaltepec Nahuatl"},
["nhw"] = {"Western Huasteca Nahuatl"},
["nhx"] = {"Isthmus-Mecayapan Nahuatl"},
["nhy"] = {"Northern Oaxaca Nahuatl"},
["nhz"] = {"Santa María La Alta Nahuatl"},
["nia"] = {"Nias"},
["nib"] = {"Nakame"},
["nic"] = {"Niger-Kordofanian languages"},
["nid"] = {"Ngandi"},
["nie"] = {"Niellim"},
["nif"] = {"Nek"},
["nig"] = {"Ngalakgan"},
["nih"] = {"Nyiha (Tanzania)"},
["nii"] = {"Nii"},
["nij"] = {"Ngaju"},
["nik"] = {"Southern Nicobarese"},
["nil"] = {"Nila"},
["nim"] = {"Nilamba"},
["nin"] = {"Ninzo"},
["nio"] = {"Nganasan"},
["niq"] = {"Nandi"},
["nir"] = {"Nimboran"},
["nis"] = {"Nimi"},
["nit"] = {"Southeastern Kolami"},
["niu"] = {"Niuean"},
["niv"] = {"Gilyak"},
["niw"] = {"Nimo"},
["nix"] = {"Hema"},
["niy"] = {"Ngiti"},
["niz"] = {"Ningil"},
["nja"] = {"Nzanyi"},
["njb"] = {"Nocte Naga"},
["njd"] = {"Ndonde Hamba"},
["njh"] = {"Lotha Naga"},
["nji"] = {"Gudanji"},
["njj"] = {"Njen"},
["njl"] = {"Njalgulgule"},
["njm"] = {"Angami Naga"},
["njn"] = {"Liangmai Naga"},
["njo"] = {"Ao Naga"},
["njr"] = {"Njerep"},
["njs"] = {"Nisa"},
["njt"] = {"Ndyuka-Trio Pidgin"},
["nju"] = {"Ngadjunmaya"},
["njx"] = {"Kunyi"},
["njy"] = {"Njyem"},
["njz"] = {"Nyishi"},
["nka"] = {"Nkoya"},
["nkb"] = {"Khoibu Naga"},
["nkc"] = {"Nkongho"},
["nkd"] = {"Koireng"},
["nke"] = {"Duke"},
["nkf"] = {"Inpui Naga"},
["nkg"] = {"Nekgini"},
["nkh"] = {"Khezha Naga"},
["nki"] = {"Thangal Naga"},
["nkj"] = {"Nakai"},
["nkk"] = {"Nokuku"},
["nkm"] = {"Namat"},
["nkn"] = {"Nkangala"},
["nko"] = {"Nkonya"},
["nkp"] = {"Niuatoputapu"},
["nkq"] = {"Nkami"},
["nkr"] = {"Nukuoro"},
["nks"] = {"North Asmat"},
["nkt"] = {"Nyika (Tanzania)"},
["nku"] = {"Bouna Kulango"},
["nkv"] = {"Nyika (Malawi and Zambia)"},
["nkw"] = {"Nkutu"},
["nkx"] = {"Nkoroo"},
["nkz"] = {"Nkari"},
["nla"] = {"Ngombale"},
["nlc"] = {"Nalca"},
["nle"] = {"East Nyala"},
["nlg"] = {"Gela"},
["nli"] = {"Grangali"},
["nlj"] = {"Nyali"},
["nlk"] = {"Ninia Yali"},
["nll"] = {"Nihali"},
["nlm"] = {"Mankiyali"},
["nlo"] = {"Ngul"},
["nlq"] = {"Lao Naga"},
["nlu"] = {"Nchumbulu"},
["nlv"] = {"Orizaba Nahuatl"},
["nlw"] = {"Walangama"},
["nlx"] = {"Nahali"},
["nly"] = {"Nyamal"},
["nlz"] = {"Nalögo"},
["nma"] = {"Maram Naga"},
["nmb"] = {"Big Nambas", "V'ënen Taut"},
["nmc"] = {"Ngam"},
["nmd"] = {"Ndumu"},
["nme"] = {"Mzieme Naga"},
["nmf"] = {"Tangkhul Naga (India)"},
["nmg"] = {"Kwasio"},
["nmh"] = {"Monsang Naga"},
["nmi"] = {"Nyam"},
["nmj"] = {"Ngombe (Central African Republic)"},
["nmk"] = {"Namakura"},
["nml"] = {"Ndemli"},
["nmm"] = {"Manangba"},
["nmn"] = {"ǃXóõ"},
["nmo"] = {"Moyon Naga"},
["nmp"] = {"Nimanbur"},
["nmq"] = {"Nambya"},
["nmr"] = {"Nimbari"},
["nms"] = {"Letemboi"},
["nmt"] = {"Namonuito"},
["nmu"] = {"Northeast Maidu"},
["nmv"] = {"Ngamini"},
["nmw"] = {"Nimoa", "Rifao"},
["nmx"] = {"Nama (Papua New Guinea)"},
["nmy"] = {"Namuyi"},
["nmz"] = {"Nawdm"},
["nna"] = {"Nyangumarta"},
["nnb"] = {"Nande"},
["nnc"] = {"Nancere"},
["nnd"] = {"West Ambae"},
["nne"] = {"Ngandyera"},
["nnf"] = {"Ngaing"},
["nng"] = {"Maring Naga"},
["nnh"] = {"Ngiemboon"},
["nni"] = {"North Nuaulu"},
["nnj"] = {"Nyangatom"},
["nnk"] = {"Nankina"},
["nnl"] = {"Northern Rengma Naga"},
["nnm"] = {"Namia"},
["nnn"] = {"Ngete"},
["nnp"] = {"Wancho Naga"},
["nnq"] = {"Ngindo"},
["nnr"] = {"Narungga"},
["nnt"] = {"Nanticoke"},
["nnu"] = {"Dwang"},
["nnv"] = {"Nugunu (Australia)"},
["nnw"] = {"Southern Nuni"},
["nny"] = {"Nyangga"},
["nnz"] = {"Nda'nda'"},
["noa"] = {"Woun Meu"},
["noc"] = {"Nuk"},
["nod"] = {"Northern Thai"},
["noe"] = {"Nimadi"},
["nof"] = {"Nomane"},
["nog"] = {"Nogai"},
["noh"] = {"Nomu"},
["noi"] = {"Noiri"},
["noj"] = {"Nonuya"},
["nok"] = {"Nooksack"},
["nol"] = {"Nomlaki"},
["nom"] = {"Nocamán"},
["non"] = {"Old Norse"},
["nop"] = {"Numanggang"},
["noq"] = {"Ngongo"},
["nos"] = {"Eastern Nisu"},
["not"] = {"Nomatsiguenga"},
["nou"] = {"Ewage-Notu"},
["nov"] = {"Novial"},
["now"] = {"Nyambo"},
["noy"] = {"Noy"},
["noz"] = {"Nayi"},
["npa"] = {"Nar Phu"},
["npb"] = {"Nupbikha"},
["npg"] = {"Ponyo-Gongwang Naga"},
["nph"] = {"Phom Naga"},
["npi"] = {"Nepali (individual language)"},
["npl"] = {"Southeastern Puebla Nahuatl"},
["npn"] = {"Mondropolon"},
["npo"] = {"Pochuri Naga"},
["nps"] = {"Nipsan"},
["npu"] = {"Puimei Naga"},
["npx"] = {"Noipx"},
["npy"] = {"Napu"},
["nqg"] = {"Southern Nago"},
["nqk"] = {"Kura Ede Nago"},
["nql"] = {"Ngendelengo"},
["nqm"] = {"Ndom"},
["nqn"] = {"Nen"},
["nqo"] = {"N'Ko", "N’Ko"},
["nqq"] = {"Kyan-Karyaw Naga"},
["nqt"] = {"Nteng"},
["nqy"] = {"Akyaung Ari Naga"},
["nra"] = {"Ngom"},
["nrb"] = {"Nara"},
["nrc"] = {"Noric"},
["nre"] = {"Southern Rengma Naga"},
["nrf"] = {"Jèrriais", "Guernésiais"},
["nrg"] = {"Narango"},
["nri"] = {"Chokri Naga"},
["nrk"] = {"Ngarla"},
["nrl"] = {"Ngarluma"},
["nrm"] = {"Narom"},
["nrn"] = {"Norn"},
["nrp"] = {"North Picene"},
["nrr"] = {"Norra", "Nora"},
["nrt"] = {"Northern Kalapuya"},
["nru"] = {"Narua"},
["nrx"] = {"Ngurmbur"},
["nrz"] = {"Lala"},
["nsa"] = {"Sangtam Naga"},
["nsb"] = {"Lower Nossob"},
["nsc"] = {"Nshi"},
["nsd"] = {"Southern Nisu"},
["nse"] = {"Nsenga"},
["nsf"] = {"Northwestern Nisu"},
["nsg"] = {"Ngasa"},
["nsh"] = {"Ngoshie"},
["nsi"] = {"Nigerian Sign Language"},
["nsk"] = {"Naskapi"},
["nsl"] = {"Norwegian Sign Language"},
["nsm"] = {"Sumi Naga"},
["nsn"] = {"Nehan"},
["nso"] = {"Pedi", "Northern Sotho", "Sepedi"},
["nsp"] = {"Nepalese Sign Language"},
["nsq"] = {"Northern Sierra Miwok"},
["nsr"] = {"Maritime Sign Language"},
["nss"] = {"Nali"},
["nst"] = {"Tase Naga"},
["nsu"] = {"Sierra Negra Nahuatl"},
["nsv"] = {"Southwestern Nisu"},
["nsw"] = {"Navut"},
["nsx"] = {"Nsongo"},
["nsy"] = {"Nasal"},
["nsz"] = {"Nisenan"},
["ntd"] = {"Northern Tidung"},
["nte"] = {"Nathembo"},
["ntg"] = {"Ngantangarra"},
["nti"] = {"Natioro"},
["ntj"] = {"Ngaanyatjarra"},
["ntk"] = {"Ikoma-Nata-Isenye"},
["ntm"] = {"Nateni"},
["nto"] = {"Ntomba"},
["ntp"] = {"Northern Tepehuan"},
["ntr"] = {"Delo"},
["ntu"] = {"Natügu"},
["ntw"] = {"Nottoway"},
["ntx"] = {"Tangkhul Naga (Myanmar)"},
["nty"] = {"Mantsi"},
["ntz"] = {"Natanzi"},
["nua"] = {"Yuanga"},
["nub"] = {"Nubian languages"},
["nuc"] = {"Nukuini"},
["nud"] = {"Ngala"},
["nue"] = {"Ngundu"},
["nuf"] = {"Nusu"},
["nug"] = {"Nungali"},
["nuh"] = {"Ndunda"},
["nui"] = {"Ngumbi"},
["nuj"] = {"Nyole"},
["nuk"] = {"Nuu-chah-nulth", "Nuuchahnulth"},
["nul"] = {"Nusa Laut"},
["num"] = {"Niuafo'ou"},
["nun"] = {"Anong"},
["nuo"] = {"Nguôn"},
["nup"] = {"Nupe-Nupe-Tako"},
["nuq"] = {"Nukumanu"},
["nur"] = {"Nukuria"},
["nus"] = {"Nuer"},
["nut"] = {"Nung (Viet Nam)"},
["nuu"] = {"Ngbundu"},
["nuv"] = {"Northern Nuni"},
["nuw"] = {"Nguluwan"},
["nux"] = {"Mehek"},
["nuy"] = {"Nunggubuyu"},
["nuz"] = {"Tlamacazapa Nahuatl"},
["nvh"] = {"Nasarian"},
["nvm"] = {"Namiae"},
["nvo"] = {"Nyokon"},
["nwa"] = {"Nawathinehena"},
["nwb"] = {"Nyabwa"},
["nwc"] = {"Classical Newari", "Classical Nepal Bhasa", "Old Newari"},
["nwe"] = {"Ngwe"},
["nwg"] = {"Ngayawung"},
["nwi"] = {"Southwest Tanna"},
["nwm"] = {"Nyamusa-Molo"},
["nwo"] = {"Nauo"},
["nwr"] = {"Nawaru"},
["nww"] = {"Ndwewe"},
["nwx"] = {"Middle Newar"},
["nwy"] = {"Nottoway-Meherrin"},
["nxa"] = {"Nauete"},
["nxd"] = {"Ngando (Democratic Republic of Congo)"},
["nxe"] = {"Nage"},
["nxg"] = {"Ngad'a"},
["nxi"] = {"Nindi"},
["nxk"] = {"Koki Naga"},
["nxl"] = {"South Nuaulu"},
["nxm"] = {"Numidian"},
["nxn"] = {"Ngawun"},
["nxo"] = {"Ndambomo"},
["nxq"] = {"Naxi"},
["nxr"] = {"Ninggerum"},
["nxx"] = {"Nafri"},
["nyb"] = {"Nyangbo"},
["nyc"] = {"Nyanga-li"},
["nyd"] = {"Nyore", "Olunyole"},
["nye"] = {"Nyengo"},
["nyf"] = {"Giryama", "Kigiryama"},
["nyg"] = {"Nyindu"},
["nyh"] = {"Nyikina"},
["nyi"] = {"Ama (Sudan)"},
["nyj"] = {"Nyanga"},
["nyk"] = {"Nyaneka"},
["nyl"] = {"Nyeu"},
["nym"] = {"Nyamwezi"},
["nyn"] = {"Nyankole"},
["nyo"] = {"Nyoro"},
["nyp"] = {"Nyang'i"},
["nyq"] = {"Nayini"},
["nyr"] = {"Nyiha (Malawi)"},
["nys"] = {"Nyungar"},
["nyt"] = {"Nyawaygi"},
["nyu"] = {"Nyungwe"},
["nyv"] = {"Nyulnyul"},
["nyw"] = {"Nyaw"},
["nyx"] = {"Nganyaywana"},
["nyy"] = {"Nyakyusa-Ngonde"},
["nza"] = {"Tigon Mbembe"},
["nzb"] = {"Njebi"},
["nzd"] = {"Nzadi"},
["nzi"] = {"Nzima"},
["nzk"] = {"Nzakara"},
["nzm"] = {"Zeme Naga"},
["nzs"] = {"New Zealand Sign Language"},
["nzu"] = {"Teke-Nzikou"},
["nzy"] = {"Nzakambay"},
["nzz"] = {"Nanga Dama Dogon"},
["oaa"] = {"Orok"},
["oac"] = {"Oroch"},
["oar"] = {"Old Aramaic (up to 700 BCE)", "Ancient Aramaic (up to 700 BCE)"},
["oav"] = {"Old Avar"},
["obi"] = {"Obispeño"},
["obk"] = {"Southern Bontok"},
["obl"] = {"Oblo"},
["obm"] = {"Moabite"},
["obo"] = {"Obo Manobo"},
["obr"] = {"Old Burmese"},
["obt"] = {"Old Breton"},
["obu"] = {"Obulom"},
["oca"] = {"Ocaina"},
["och"] = {"Old Chinese"},
["ocm"] = {"Old Cham"},
["oco"] = {"Old Cornish"},
["ocu"] = {"Atzingo Matlatzinca"},
["oda"] = {"Odut"},
["odk"] = {"Od"},
["odt"] = {"Old Dutch"},
["odu"] = {"Odual"},
["ofo"] = {"Ofo"},
["ofs"] = {"Old Frisian"},
["ofu"] = {"Efutop"},
["ogb"] = {"Ogbia"},
["ogc"] = {"Ogbah"},
["oge"] = {"Old Georgian"},
["ogg"] = {"Ogbogolo"},
["ogo"] = {"Khana"},
["ogu"] = {"Ogbronuagum"},
["oht"] = {"Old Hittite"},
["ohu"] = {"Old Hungarian"},
["oia"] = {"Oirata"},
["oie"] = {"Okolie"},
["oin"] = {"Inebu One"},
["ojb"] = {"Northwestern Ojibwa"},
["ojc"] = {"Central Ojibwa"},
["ojg"] = {"Eastern Ojibwa"},
["ojp"] = {"Old Japanese"},
["ojs"] = {"Severn Ojibwa"},
["ojv"] = {"Ontong Java"},
["ojw"] = {"Western Ojibwa"},
["oka"] = {"Okanagan"},
["okb"] = {"Okobo"},
["okc"] = {"Kobo"},
["okd"] = {"Okodia"},
["oke"] = {"Okpe (Southwestern Edo)"},
["okg"] = {"Koko Babangk"},
["okh"] = {"Koresh-e Rostam"},
["oki"] = {"Okiek"},
["okj"] = {"Oko-Juwoi"},
["okk"] = {"Kwamtim One"},
["okl"] = {"Old Kentish Sign Language"},
["okm"] = {"Middle Korean (10th-16th cent.)"},
["okn"] = {"Oki-No-Erabu"},
["oko"] = {"Old Korean (3rd-9th cent.)"},
["okr"] = {"Kirike"},
["oks"] = {"Oko-Eni-Osayen"},
["oku"] = {"Oku"},
["okv"] = {"Orokaiva"},
["okx"] = {"Okpe (Northwestern Edo)"},
["okz"] = {"Old Khmer"},
["ola"] = {"Walungge"},
["old"] = {"Mochi"},
["ole"] = {"Olekha"},
["olk"] = {"Olkol"},
["olm"] = {"Oloma"},
["olo"] = {"Livvi"},
["olr"] = {"Olrat"},
["olt"] = {"Old Lithuanian"},
["olu"] = {"Kuvale"},
["oma"] = {"Omaha-Ponca"},
["omb"] = {"East Ambae"},
["omc"] = {"Mochica"},
["omg"] = {"Omagua"},
["omi"] = {"Omi"},
["omk"] = {"Omok"},
["oml"] = {"Ombo"},
["omn"] = {"Minoan"},
["omo"] = {"Utarmbung"},
["omp"] = {"Old Manipuri"},
["omq"] = {"Oto-Manguean languages"},
["omr"] = {"Old Marathi"},
["omt"] = {"Omotik"},
["omu"] = {"Omurano"},
["omv"] = {"Omotic languages"},
["omw"] = {"South Tairora"},
["omx"] = {"Old Mon"},
["omy"] = {"Old Malay"},
["ona"] = {"Ona"},
["onb"] = {"Lingao"},
["one"] = {"Oneida"},
["ong"] = {"Olo"},
["oni"] = {"Onin"},
["onj"] = {"Onjob"},
["onk"] = {"Kabore One"},
["onn"] = {"Onobasulu"},
["ono"] = {"Onondaga"},
["onp"] = {"Sartang"},
["onr"] = {"Northern One"},
["ons"] = {"Ono"},
["ont"] = {"Ontenu"},
["onu"] = {"Unua"},
["onw"] = {"Old Nubian"},
["onx"] = {"Onin Based Pidgin"},
["ood"] = {"Tohono O'odham"},
["oog"] = {"Ong"},
["oon"] = {"Önge"},
["oor"] = {"Oorlams"},
["oos"] = {"Old Ossetic"},
["opa"] = {"Okpamheri"},
["opk"] = {"Kopkaka"},
["opm"] = {"Oksapmin"},
["opo"] = {"Opao"},
["opt"] = {"Opata"},
["opy"] = {"Ofayé"},
["ora"] = {"Oroha"},
["orc"] = {"Orma"},
["ore"] = {"Orejón"},
["org"] = {"Oring"},
["orh"] = {"Oroqen"},
["orn"] = {"Orang Kanaq"},
["oro"] = {"Orokolo"},
["orr"] = {"Oruma"},
["ors"] = {"Orang Seletar"},
["ort"] = {"Adivasi Oriya"},
["oru"] = {"Ormuri"},
["orv"] = {"Old Russian"},
["orw"] = {"Oro Win"},
["orx"] = {"Oro"},
["ory"] = {"Odia (individual language)", "Oriya (individual language)"},
["orz"] = {"Ormu"},
["osa"] = {"Osage"},
["osc"] = {"Oscan"},
["osi"] = {"Osing"},
["osn"] = {"Old Sundanese"},
["oso"] = {"Ososo"},
["osp"] = {"Old Spanish"},
["ost"] = {"Osatu"},
["osu"] = {"Southern One"},
["osx"] = {"Old Saxon"},
["ota"] = {"Ottoman Turkish (1500-1928)"},
["otb"] = {"Old Tibetan"},
["otd"] = {"Ot Danum"},
["ote"] = {"Mezquital Otomi"},
["oti"] = {"Oti"},
["otk"] = {"Old Turkish"},
["otl"] = {"Tilapa Otomi"},
["otm"] = {"Eastern Highland Otomi"},
["otn"] = {"Tenango Otomi"},
["oto"] = {"Otomian languages"},
["otq"] = {"Querétaro Otomi"},
["otr"] = {"Otoro"},
["ots"] = {"Estado de México Otomi"},
["ott"] = {"Temoaya Otomi"},
["otu"] = {"Otuke"},
["otw"] = {"Ottawa"},
["otx"] = {"Texcatepec Otomi"},
["oty"] = {"Old Tamil"},
["otz"] = {"Ixtenco Otomi"},
["oua"] = {"Tagargrent"},
["oub"] = {"Glio-Oubi"},
["oue"] = {"Oune"},
["oui"] = {"Old Uighur"},
["oum"] = {"Ouma"},
["ovd"] = {"Elfdalian", "Övdalian"},
["owi"] = {"Owiniga"},
["owl"] = {"Old Welsh"},
["oyb"] = {"Oy"},
["oyd"] = {"Oyda"},
["oym"] = {"Wayampi"},
["oyy"] = {"Oya'oya"},
["ozm"] = {"Koonzime"},
["paa"] = {"Papuan languages"},
["pab"] = {"Parecís"},
["pac"] = {"Pacoh"},
["pad"] = {"Paumarí"},
["pae"] = {"Pagibete"},
["paf"] = {"Paranawát"},
["pag"] = {"Pangasinan"},
["pah"] = {"Tenharim"},
["pai"] = {"Pe"},
["pak"] = {"Parakanã"},
["pal"] = {"Pahlavi"},
["pam"] = {"Pampanga", "Kapampangan"},
["pao"] = {"Northern Paiute"},
["pap"] = {"Papiamento"},
["paq"] = {"Parya"},
["par"] = {"Panamint", "Timbisha"},
["pas"] = {"Papasena"},
["pau"] = {"Palauan"},
["pav"] = {"Pakaásnovos"},
["paw"] = {"Pawnee"},
["pax"] = {"Pankararé"},
["pay"] = {"Pech"},
["paz"] = {"Pankararú"},
["pbb"] = {"Páez"},
["pbc"] = {"Patamona"},
["pbe"] = {"Mezontla Popoloca"},
["pbf"] = {"Coyotepec Popoloca"},
["pbg"] = {"Paraujano"},
["pbh"] = {"E'ñapa Woromaipu"},
["pbi"] = {"Parkwa"},
["pbl"] = {"Mak (Nigeria)"},
["pbm"] = {"Puebla Mazatec"},
["pbn"] = {"Kpasam"},
["pbo"] = {"Papel"},
["pbp"] = {"Badyara"},
["pbr"] = {"Pangwa"},
["pbs"] = {"Central Pame"},
["pbt"] = {"Southern Pashto"},
["pbu"] = {"Northern Pashto"},
["pbv"] = {"Pnar"},
["pby"] = {"Pyu (Papua New Guinea)"},
["pca"] = {"Santa Inés Ahuatempan Popoloca"},
["pcb"] = {"Pear"},
["pcc"] = {"Bouyei"},
["pcd"] = {"Picard"},
["pce"] = {"Ruching Palaung"},
["pcf"] = {"Paliyan"},
["pcg"] = {"Paniya"},
["pch"] = {"Pardhan"},
["pci"] = {"Duruwa"},
["pcj"] = {"Parenga"},
["pck"] = {"Paite Chin"},
["pcl"] = {"Pardhi"},
["pcm"] = {"Nigerian Pidgin"},
["pcn"] = {"Piti"},
["pcp"] = {"Pacahuara"},
["pcw"] = {"Pyapun"},
["pda"] = {"Anam"},
["pdc"] = {"Pennsylvania German"},
["pdi"] = {"Pa Di"},
["pdn"] = {"Podena", "Fedan"},
["pdo"] = {"Padoe"},
["pdt"] = {"Plautdietsch"},
["pdu"] = {"Kayan"},
["pea"] = {"Peranakan Indonesian"},
["peb"] = {"Eastern Pomo"},
["ped"] = {"Mala (Papua New Guinea)"},
["pee"] = {"Taje"},
["pef"] = {"Northeastern Pomo"},
["peg"] = {"Pengo"},
["peh"] = {"Bonan"},
["pei"] = {"Chichimeca-Jonaz"},
["pej"] = {"Northern Pomo"},
["pek"] = {"Penchal"},
["pel"] = {"Pekal"},
["pem"] = {"Phende"},
["peo"] = {"Old Persian (ca. 600-400 B.C.)"},
["pep"] = {"Kunja"},
["peq"] = {"Southern Pomo"},
["pes"] = {"Iranian Persian"},
["pev"] = {"Pémono"},
["pex"] = {"Petats"},
["pey"] = {"Petjo"},
["pez"] = {"Eastern Penan"},
["pfa"] = {"Pááfang"},
["pfe"] = {"Pere"},
["pfl"] = {"Pfaelzisch"},
["pga"] = {"Sudanese Creole Arabic"},
["pgd"] = {"Gāndhārī"},
["pgg"] = {"Pangwali"},
["pgi"] = {"Pagi"},
["pgk"] = {"Rerep"},
["pgl"] = {"Primitive Irish"},
["pgn"] = {"Paelignian"},
["pgs"] = {"Pangseng"},
["pgu"] = {"Pagu"},
["pgz"] = {"Papua New Guinean Sign Language"},
["pha"] = {"Pa-Hng"},
["phd"] = {"Phudagi"},
["phg"] = {"Phuong"},
["phh"] = {"Phukha"},
["phi"] = {"Philippine languages"},
["phj"] = {"Pahari"},
["phk"] = {"Phake"},
["phl"] = {"Phalura", "Palula"},
["phm"] = {"Phimbi"},
["phn"] = {"Phoenician"},
["pho"] = {"Phunoi"},
["phq"] = {"Phana'"},
["phr"] = {"Pahari-Potwari"},
["pht"] = {"Phu Thai"},
["phu"] = {"Phuan"},
["phv"] = {"Pahlavani"},
["phw"] = {"Phangduwali"},
["pia"] = {"Pima Bajo"},
["pib"] = {"Yine"},
["pic"] = {"Pinji"},
["pid"] = {"Piaroa"},
["pie"] = {"Piro"},
["pif"] = {"Pingelapese"},
["pig"] = {"Pisabo"},
["pih"] = {"Pitcairn-Norfolk"},
["pij"] = {"Pijao"},
["pil"] = {"Yom"},
["pim"] = {"Powhatan"},
["pin"] = {"Piame"},
["pio"] = {"Piapoco"},
["pip"] = {"Pero"},
["pir"] = {"Piratapuyo"},
["pis"] = {"Pijin"},
["pit"] = {"Pitta Pitta"},
["piu"] = {"Pintupi-Luritja"},
["piv"] = {"Pileni", "Vaeakau-Taumako"},
["piw"] = {"Pimbwe"},
["pix"] = {"Piu"},
["piy"] = {"Piya-Kwonci"},
["piz"] = {"Pije"},
["pjt"] = {"Pitjantjatjara"},
["pka"] = {"Ardhamāgadhī Prākrit"},
["pkb"] = {"Pokomo", "Kipfokomo"},
["pkc"] = {"Paekche"},
["pkg"] = {"Pak-Tong"},
["pkh"] = {"Pankhu"},
["pkn"] = {"Pakanha"},
["pko"] = {"Pökoot"},
["pkp"] = {"Pukapuka"},
["pkr"] = {"Attapady Kurumba"},
["pks"] = {"Pakistan Sign Language"},
["pkt"] = {"Maleng"},
["pku"] = {"Paku"},
["pla"] = {"Miani"},
["plb"] = {"Polonombauk"},
["plc"] = {"Central Palawano"},
["pld"] = {"Polari"},
["ple"] = {"Palu'e"},
["plf"] = {"Central Malayo-Polynesian languages"},
["plg"] = {"Pilagá"},
["plh"] = {"Paulohi"},
["plj"] = {"Polci"},
["plk"] = {"Kohistani Shina"},
["pll"] = {"Shwe Palaung"},
["pln"] = {"Palenquero"},
["plo"] = {"Oluta Popoluca"},
["plq"] = {"Palaic"},
["plr"] = {"Palaka Senoufo"},
["pls"] = {"San Marcos Tlacoyalco Popoloca", "San Marcos Tlalcoyalco Popoloca"},
["plt"] = {"Plateau Malagasy"},
["plu"] = {"Palikúr"},
["plv"] = {"Southwest Palawano"},
["plw"] = {"Brooke's Point Palawano"},
["ply"] = {"Bolyu"},
["plz"] = {"Paluan"},
["pma"] = {"Paama"},
["pmb"] = {"Pambia"},
["pmd"] = {"Pallanganmiddang"},
["pme"] = {"Pwaamei"},
["pmf"] = {"Pamona"},
["pmh"] = {"Māhārāṣṭri Prākrit"},
["pmi"] = {"Northern Pumi"},
["pmj"] = {"Southern Pumi"},
["pmk"] = {"Pamlico"},
["pml"] = {"Lingua Franca"},
["pmm"] = {"Pomo"},
["pmn"] = {"Pam"},
["pmo"] = {"Pom"},
["pmq"] = {"Northern Pame"},
["pmr"] = {"Paynamar"},
["pms"] = {"Piemontese"},
["pmt"] = {"Tuamotuan"},
["pmw"] = {"Plains Miwok"},
["pmx"] = {"Poumei Naga"},
["pmy"] = {"Papuan Malay"},
["pmz"] = {"Southern Pame"},
["pna"] = {"Punan Bah-Biau"},
["pnb"] = {"Western Panjabi"},
["pnc"] = {"Pannei"},
["pnd"] = {"Mpinda"},
["pne"] = {"Western Penan"},
["png"] = {"Pangu", "Pongu"},
["pnh"] = {"Penrhyn"},
["pni"] = {"Aoheng"},
["pnj"] = {"Pinjarup"},
["pnk"] = {"Paunaka"},
["pnl"] = {"Paleni"},
["pnm"] = {"Punan Batu 1"},
["pnn"] = {"Pinai-Hagahai"},
["pno"] = {"Panobo"},
["pnp"] = {"Pancana"},
["pnq"] = {"Pana (Burkina Faso)"},
["pnr"] = {"Panim"},
["pns"] = {"Ponosakan"},
["pnt"] = {"Pontic"},
["pnu"] = {"Jiongnai Bunu"},
["pnv"] = {"Pinigura"},
["pnw"] = {"Banyjima", "Panytyima"},
["pnx"] = {"Phong-Kniang"},
["pny"] = {"Pinyin"},
["pnz"] = {"Pana (Central African Republic)"},
["poc"] = {"Poqomam"},
["poe"] = {"San Juan Atzingo Popoloca"},
["pof"] = {"Poke"},
["pog"] = {"Potiguára"},
["poh"] = {"Poqomchi'"},
["poi"] = {"Highland Popoluca"},
["pok"] = {"Pokangá"},
["pom"] = {"Southeastern Pomo"},
["pon"] = {"Pohnpeian"},
["poo"] = {"Central Pomo"},
["pop"] = {"Pwapwâ"},
["poq"] = {"Texistepec Popoluca"},
["pos"] = {"Sayula Popoluca"},
["pot"] = {"Potawatomi"},
["pov"] = {"Upper Guinea Crioulo"},
["pow"] = {"San Felipe Otlaltepec Popoloca"},
["pox"] = {"Polabian"},
["poy"] = {"Pogolo"},
["poz"] = {"Malayo-Polynesian languages"},
["ppe"] = {"Papi"},
["ppi"] = {"Paipai"},
["ppk"] = {"Uma"},
["ppl"] = {"Pipil", "Nicarao"},
["ppm"] = {"Papuma"},
["ppn"] = {"Papapana"},
["ppo"] = {"Folopa"},
["ppp"] = {"Pelende"},
["ppq"] = {"Pei"},
["pps"] = {"San Luís Temalacayuca Popoloca"},
["ppt"] = {"Pare"},
["ppu"] = {"Papora"},
["pqa"] = {"Pa'a"},
["pqe"] = {"Eastern Malayo-Polynesian languages"},
["pqm"] = {"Malecite-Passamaquoddy"},
["pqw"] = {"Western Malayo-Polynesian languages"},
["pra"] = {"Prakrit languages"},
["prc"] = {"Parachi"},
["prd"] = {"Parsi-Dari"},
["pre"] = {"Principense"},
["prf"] = {"Paranan"},
["prg"] = {"Prussian"},
["prh"] = {"Porohanon"},
["pri"] = {"Paicî"},
["prk"] = {"Parauk"},
["prl"] = {"Peruvian Sign Language"},
["prm"] = {"Kibiri"},
["prn"] = {"Prasuni"},
["pro"] = {"Old Provençal (to 1500)", "Old Occitan (to 1500)"},
["prp"] = {"Parsi"},
["prq"] = {"Ashéninka Perené"},
["prr"] = {"Puri"},
["prs"] = {"Dari", "Afghan Persian"},
["prt"] = {"Phai"},
["pru"] = {"Puragi"},
["prw"] = {"Parawen"},
["prx"] = {"Purik"},
["prz"] = {"Providencia Sign Language"},
["psa"] = {"Asue Awyu"},
["psc"] = {"Iranian Sign Language", "Persian Sign Language"},
["psd"] = {"Plains Indian Sign Language"},
["pse"] = {"Central Malay"},
["psg"] = {"Penang Sign Language"},
["psh"] = {"Southwest Pashai", "Southwest Pashayi"},
["psi"] = {"Southeast Pashai", "Southeast Pashayi"},
["psl"] = {"Puerto Rican Sign Language"},
["psm"] = {"Pauserna"},
["psn"] = {"Panasuan"},
["pso"] = {"Polish Sign Language"},
["psp"] = {"Philippine Sign Language"},
["psq"] = {"Pasi"},
["psr"] = {"Portuguese Sign Language"},
["pss"] = {"Kaulong"},
["pst"] = {"Central Pashto"},
["psu"] = {"Sauraseni Prākrit"},
["psw"] = {"Port Sandwich"},
["psy"] = {"Piscataway"},
["pta"] = {"Pai Tavytera"},
["pth"] = {"Pataxó Hã-Ha-Hãe"},
["pti"] = {"Pindiini", "Wangkatha"},
["ptn"] = {"Patani"},
["pto"] = {"Zo'é"},
["ptp"] = {"Patep"},
["ptq"] = {"Pattapu"},
["ptr"] = {"Piamatsina"},
["ptt"] = {"Enrekang"},
["ptu"] = {"Bambam"},
["ptv"] = {"Port Vato"},
["ptw"] = {"Pentlatch"},
["pty"] = {"Pathiya"},
["pua"] = {"Western Highland Purepecha"},
["pub"] = {"Purum"},
["puc"] = {"Punan Merap"},
["pud"] = {"Punan Aput"},
["pue"] = {"Puelche"},
["puf"] = {"Punan Merah"},
["pug"] = {"Phuie"},
["pui"] = {"Puinave"},
["puj"] = {"Punan Tubu"},
["pum"] = {"Puma"},
["puo"] = {"Puoc"},
["pup"] = {"Pulabu"},
["puq"] = {"Puquina"},
["pur"] = {"Puruborá"},
["put"] = {"Putoh"},
["puu"] = {"Punu"},
["puw"] = {"Puluwatese"},
["pux"] = {"Puare"},
["puy"] = {"Purisimeño"},
["pwa"] = {"Pawaia"},
["pwb"] = {"Panawa"},
["pwg"] = {"Gapapaiwa"},
["pwi"] = {"Patwin"},
["pwm"] = {"Molbog"},
["pwn"] = {"Paiwan"},
["pwo"] = {"Pwo Western Karen"},
["pwr"] = {"Powari"},
["pww"] = {"Pwo Northern Karen"},
["pxm"] = {"Quetzaltepec Mixe"},
["pye"] = {"Pye Krumen"},
["pym"] = {"Fyam"},
["pyn"] = {"Poyanáwa"},
["pys"] = {"Paraguayan Sign Language", "Lengua de Señas del Paraguay"},
["pyu"] = {"Puyuma"},
["pyx"] = {"Pyu (Myanmar)"},
["pyy"] = {"Pyen"},
["pzh"] = {"Pazeh"},
["pzn"] = {"Jejara Naga", "Para Naga"},
["qua"] = {"Quapaw"},
["qub"] = {"Huallaga Huánuco Quechua"},
["quc"] = {"K'iche'", "Quiché"},
["qud"] = {"Calderón Highland Quichua"},
["quf"] = {"Lambayeque Quechua"},
["qug"] = {"Chimborazo Highland Quichua"},
["quh"] = {"South Bolivian Quechua"},
["qui"] = {"Quileute"},
["quk"] = {"Chachapoyas Quechua"},
["qul"] = {"North Bolivian Quechua"},
["qum"] = {"Sipacapense"},
["qun"] = {"Quinault"},
["qup"] = {"Southern Pastaza Quechua"},
["quq"] = {"Quinqui"},
["qur"] = {"Yanahuanca Pasco Quechua"},
["qus"] = {"Santiago del Estero Quichua"},
["quv"] = {"Sacapulteco"},
["quw"] = {"Tena Lowland Quichua"},
["qux"] = {"Yauyos Quechua"},
["quy"] = {"Ayacucho Quechua"},
["quz"] = {"Cusco Quechua"},
["qva"] = {"Ambo-Pasco Quechua"},
["qvc"] = {"Cajamarca Quechua"},
["qve"] = {"Eastern Apurímac Quechua"},
["qvh"] = {"Huamalíes-Dos de Mayo Huánuco Quechua"},
["qvi"] = {"Imbabura Highland Quichua"},
["qvj"] = {"Loja Highland Quichua"},
["qvl"] = {"Cajatambo North Lima Quechua"},
["qvm"] = {"Margos-Yarowilca-Lauricocha Quechua"},
["qvn"] = {"North Junín Quechua"},
["qvo"] = {"Napo Lowland Quechua"},
["qvp"] = {"Pacaraos Quechua"},
["qvs"] = {"San Martín Quechua"},
["qvw"] = {"Huaylla Wanca Quechua"},
["qvy"] = {"Queyu"},
["qvz"] = {"Northern Pastaza Quichua"},
["qwa"] = {"Corongo Ancash Quechua"},
["qwc"] = {"Classical Quechua"},
["qwe"] = {"Quechuan (family)"},
["qwh"] = {"Huaylas Ancash Quechua"},
["qwm"] = {"Kuman (Russia)"},
["qws"] = {"Sihuas Ancash Quechua"},
["qwt"] = {"Kwalhioqua-Tlatskanai"},
["qxa"] = {"Chiquián Ancash Quechua"},
["qxc"] = {"Chincha Quechua"},
["qxh"] = {"Panao Huánuco Quechua"},
["qxl"] = {"Salasaca Highland Quichua"},
["qxn"] = {"Northern Conchucos Ancash Quechua"},
["qxo"] = {"Southern Conchucos Ancash Quechua"},
["qxp"] = {"Puno Quechua"},
["qxq"] = {"Qashqa'i"},
["qxr"] = {"Cañar Highland Quichua"},
["qxs"] = {"Southern Qiang"},
["qxt"] = {"Santa Ana de Tusi Pasco Quechua"},
["qxu"] = {"Arequipa-La Unión Quechua"},
["qxw"] = {"Jauja Wanca Quechua"},
["qya"] = {"Quenya"},
["qyp"] = {"Quiripi"},
["raa"] = {"Dungmali"},
["rab"] = {"Camling"},
["rac"] = {"Rasawa"},
["rad"] = {"Rade"},
["raf"] = {"Western Meohang"},
["rag"] = {"Logooli", "Lulogooli"},
["rah"] = {"Rabha"},
["rai"] = {"Ramoaaina"},
["raj"] = {"Rajasthani"},
["rak"] = {"Tulu-Bohuai"},
["ral"] = {"Ralte"},
["ram"] = {"Canela"},
["ran"] = {"Riantana"},
["rao"] = {"Rao"},
["rap"] = {"Rapanui"},
["raq"] = {"Saam"},
["rar"] = {"Rarotongan", "Cook Islands Maori"},
["ras"] = {"Tegali"},
["rat"] = {"Razajerdi"},
["rau"] = {"Raute"},
["rav"] = {"Sampang"},
["raw"] = {"Rawang"},
["rax"] = {"Rang"},
["ray"] = {"Rapa"},
["raz"] = {"Rahambuu"},
["rbb"] = {"Rumai Palaung"},
["rbk"] = {"Northern Bontok"},
["rbl"] = {"Miraya Bikol"},
["rbp"] = {"Barababaraba"},
["rcf"] = {"Réunion Creole French"},
["rdb"] = {"Rudbari"},
["rea"] = {"Rerau"},
["reb"] = {"Rembong"},
["ree"] = {"Rejang Kayan"},
["reg"] = {"Kara (Tanzania)"},
["rei"] = {"Reli"},
["rej"] = {"Rejang"},
["rel"] = {"Rendille"},
["rem"] = {"Remo"},
["ren"] = {"Rengao"},
["rer"] = {"Rer Bare"},
["res"] = {"Reshe"},
["ret"] = {"Retta"},
["rey"] = {"Reyesano"},
["rga"] = {"Roria"},
["rge"] = {"Romano-Greek"},
["rgk"] = {"Rangkas"},
["rgn"] = {"Romagnol"},
["rgr"] = {"Resígaro"},
["rgs"] = {"Southern Roglai"},
["rgu"] = {"Ringgou"},
["rhg"] = {"Rohingya"},
["rhp"] = {"Yahang"},
["ria"] = {"Riang (India)"},
["rib"] = {"Bribri Sign Language"},
["rif"] = {"Tarifit"},
["ril"] = {"Riang Lang", "Riang (Myanmar)"},
["rim"] = {"Nyaturu"},
["rin"] = {"Nungu"},
["rir"] = {"Ribun"},
["rit"] = {"Ritharrngu"},
["riu"] = {"Riung"},
["rjg"] = {"Rajong"},
["rji"] = {"Raji"},
["rjs"] = {"Rajbanshi"},
["rka"] = {"Kraol"},
["rkb"] = {"Rikbaktsa"},
["rkh"] = {"Rakahanga-Manihiki"},
["rki"] = {"Rakhine"},
["rkm"] = {"Marka"},
["rkt"] = {"Rangpuri", "Kamta"},
["rkw"] = {"Arakwal"},
["rma"] = {"Rama"},
["rmb"] = {"Rembarrnga"},
["rmc"] = {"Carpathian Romani"},
["rmd"] = {"Traveller Danish"},
["rme"] = {"Angloromani"},
["rmf"] = {"Kalo Finnish Romani"},
["rmg"] = {"Traveller Norwegian"},
["rmh"] = {"Murkim"},
["rmi"] = {"Lomavren"},
["rmk"] = {"Romkun"},
["rml"] = {"Baltic Romani"},
["rmm"] = {"Roma"},
["rmn"] = {"Balkan Romani"},
["rmo"] = {"Sinte Romani"},
["rmp"] = {"Rempi"},
["rmq"] = {"Caló"},
["rms"] = {"Romanian Sign Language"},
["rmt"] = {"Domari"},
["rmu"] = {"Tavringer Romani"},
["rmv"] = {"Romanova"},
["rmw"] = {"Welsh Romani"},
["rmx"] = {"Romam"},
["rmy"] = {"Vlax Romani"},
["rmz"] = {"Marma"},
["rnb"] = {"Brunca Sign Language"},
["rnd"] = {"Ruund"},
["rng"] = {"Ronga"},
["rnl"] = {"Ranglong"},
["rnn"] = {"Roon"},
["rnp"] = {"Rongpo"},
["rnr"] = {"Nari Nari"},
["rnw"] = {"Rungwa"},
["roa"] = {"Romance languages"},
["rob"] = {"Tae'"},
["roc"] = {"Cacgia Roglai"},
["rod"] = {"Rogo"},
["roe"] = {"Ronji"},
["rof"] = {"Rombo"},
["rog"] = {"Northern Roglai"},
["rol"] = {"Romblomanon"},
["rom"] = {"Romany"},
["roo"] = {"Rotokas"},
["rop"] = {"Kriol"},
["ror"] = {"Rongga"},
["rou"] = {"Runga"},
["row"] = {"Dela-Oenale"},
["rpn"] = {"Repanbitip"},
["rpt"] = {"Rapting"},
["rri"] = {"Ririo"},
["rro"] = {"Waima"},
["rrt"] = {"Arritinngithigh"},
["rsb"] = {"Romano-Serbian"},
["rsk"] = {"Ruthenian", "Rusyn"},
["rsl"] = {"Russian Sign Language"},
["rsm"] = {"Miriwoong Sign Language"},
["rsn"] = {"Rwandan Sign Language"},
["rtc"] = {"Rungtu Chin"},
["rth"] = {"Ratahan"},
["rtm"] = {"Rotuman"},
["rts"] = {"Yurats"},
["rtw"] = {"Rathawi"},
["rub"] = {"Gungu"},
["ruc"] = {"Ruuli"},
["rue"] = {"Rusyn"},
["ruf"] = {"Luguru"},
["rug"] = {"Roviana"},
["ruh"] = {"Ruga"},
["rui"] = {"Rufiji"},
["ruk"] = {"Che"},
["ruo"] = {"Istro Romanian"},
["rup"] = {"Macedo-Romanian", "Aromanian", "Arumanian"},
["ruq"] = {"Megleno Romanian"},
["rut"] = {"Rutul"},
["ruu"] = {"Lanas Lobu"},
["ruy"] = {"Mala (Nigeria)"},
["ruz"] = {"Ruma"},
["rwa"] = {"Rawo"},
["rwk"] = {"Rwa"},
["rwl"] = {"Ruwila"},
["rwm"] = {"Amba (Uganda)"},
["rwo"] = {"Rawa"},
["rwr"] = {"Marwari (India)"},
["rxd"] = {"Ngardi"},
["rxw"] = {"Karuwali", "Garuwali"},
["ryn"] = {"Northern Amami-Oshima"},
["rys"] = {"Yaeyama"},
["ryu"] = {"Central Okinawan"},
["rzh"] = {"Rāziḥī"},
["saa"] = {"Saba"},
["sab"] = {"Buglere"},
["sac"] = {"Meskwaki"},
["sad"] = {"Sandawe"},
["sae"] = {"Sabanê"},
["saf"] = {"Safaliba"},
["sah"] = {"Yakut"},
["sai"] = {"South American Indian languages"},
["saj"] = {"Sahu"},
["sak"] = {"Sake"},
["sal"] = {"Salishan languages"},
["sam"] = {"Samaritan Aramaic"},
["sao"] = {"Sause"},
["saq"] = {"Samburu"},
["sar"] = {"Saraveca"},
["sas"] = {"Sasak"},
["sat"] = {"Santali"},
["sau"] = {"Saleman"},
["sav"] = {"Saafi-Saafi"},
["saw"] = {"Sawi"},
["sax"] = {"Sa"},
["say"] = {"Saya"},
["saz"] = {"Saurashtra"},
["sba"] = {"Ngambay"},
["sbb"] = {"Simbo"},
["sbc"] = {"Kele (Papua New Guinea)"},
["sbd"] = {"Southern Samo"},
["sbe"] = {"Saliba"},
["sbf"] = {"Chabu", "Shabo"},
["sbg"] = {"Seget"},
["sbh"] = {"Sori-Harengan"},
["sbi"] = {"Seti"},
["sbj"] = {"Surbakhal"},
["sbk"] = {"Safwa"},
["sbl"] = {"Botolan Sambal"},
["sbm"] = {"Sagala"},
["sbn"] = {"Sindhi Bhil"},
["sbo"] = {"Sabüm"},
["sbp"] = {"Sangu (Tanzania)"},
["sbq"] = {"Sileibi"},
["sbr"] = {"Sembakung Murut"},
["sbs"] = {"Subiya"},
["sbt"] = {"Kimki"},
["sbu"] = {"Stod Bhoti"},
["sbv"] = {"Sabine"},
["sbw"] = {"Simba"},
["sbx"] = {"Seberuang"},
["sby"] = {"Soli"},
["sbz"] = {"Sara Kaba"},
["scb"] = {"Chut"},
["sce"] = {"Dongxiang"},
["scf"] = {"San Miguel Creole French"},
["scg"] = {"Sanggau"},
["sch"] = {"Sakachep"},
["sci"] = {"Sri Lankan Creole Malay"},
["sck"] = {"Sadri"},
["scl"] = {"Shina"},
["scn"] = {"Sicilian"},
["sco"] = {"Scots"},
["scp"] = {"Hyolmo", "Helambu Sherpa"},
["scq"] = {"Sa'och"},
["scs"] = {"North Slavey"},
["sct"] = {"Southern Katang"},
["scu"] = {"Shumcho"},
["scv"] = {"Sheni"},
["scw"] = {"Sha"},
["scx"] = {"Sicel"},
["sda"] = {"Toraja-Sa'dan"},
["sdb"] = {"Shabak"},
["sdc"] = {"Sassarese Sardinian"},
["sde"] = {"Surubu"},
["sdf"] = {"Sarli"},
["sdg"] = {"Savi"},
["sdh"] = {"Southern Kurdish"},
["sdj"] = {"Suundi"},
["sdk"] = {"Sos Kundi"},
["sdl"] = {"Saudi Arabian Sign Language"},
["sdn"] = {"Gallurese Sardinian"},
["sdo"] = {"Bukar-Sadung Bidayuh"},
["sdp"] = {"Sherdukpen"},
["sdq"] = {"Semandang"},
["sdr"] = {"Oraon Sadri"},
["sds"] = {"Sened"},
["sdt"] = {"Shuadit"},
["sdu"] = {"Sarudu"},
["sdv"] = {"Eastern Sudanic languages"},
["sdx"] = {"Sibu Melanau"},
["sdz"] = {"Sallands"},
["sea"] = {"Semai"},
["seb"] = {"Shempire Senoufo"},
["sec"] = {"Sechelt"},
["sed"] = {"Sedang"},
["see"] = {"Seneca"},
["sef"] = {"Cebaara Senoufo"},
["seg"] = {"Segeju"},
["seh"] = {"Sena"},
["sei"] = {"Seri"},
["sej"] = {"Sene"},
["sek"] = {"Sekani"},
["sel"] = {"Selkup"},
["sem"] = {"Semitic languages"},
["sen"] = {"Nanerigé Sénoufo"},
["seo"] = {"Suarmin"},
["sep"] = {"Sìcìté Sénoufo"},
["seq"] = {"Senara Sénoufo"},
["ser"] = {"Serrano"},
["ses"] = {"Koyraboro Senni Songhai"},
["set"] = {"Sentani"},
["seu"] = {"Serui-Laut"},
["sev"] = {"Nyarafolo Senoufo"},
["sew"] = {"Sewa Bay"},
["sey"] = {"Secoya"},
["sez"] = {"Senthang Chin"},
["sfb"] = {"Langue des signes de Belgique Francophone", "French Belgian Sign Language"},
["sfe"] = {"Eastern Subanen"},
["sfm"] = {"Small Flowery Miao"},
["sfs"] = {"South African Sign Language"},
["sfw"] = {"Sehwi"},
["sga"] = {"Old Irish (to 900)"},
["sgb"] = {"Mag-antsi Ayta"},
["sgc"] = {"Kipsigis"},
["sgd"] = {"Surigaonon"},
["sge"] = {"Segai"},
["sgg"] = {"Swiss-German Sign Language"},
["sgh"] = {"Shughni"},
["sgi"] = {"Suga"},
["sgj"] = {"Surgujia"},
["sgk"] = {"Sangkong"},
["sgm"] = {"Singa"},
["sgn"] = {"Sign languages"},
["sgp"] = {"Singpho"},
["sgr"] = {"Sangisari"},
["sgs"] = {"Samogitian"},
["sgt"] = {"Brokpake"},
["sgu"] = {"Salas"},
["sgw"] = {"Sebat Bet Gurage"},
["sgx"] = {"Sierra Leone Sign Language"},
["sgy"] = {"Sanglechi"},
["sgz"] = {"Sursurunga"},
["sha"] = {"Shall-Zwall"},
["shb"] = {"Ninam"},
["shc"] = {"Sonde"},
["shd"] = {"Kundal Shahi"},
["she"] = {"Sheko"},
["shg"] = {"Shua"},
["shh"] = {"Shoshoni"},
["shi"] = {"Tachelhit"},
["shj"] = {"Shatt"},
["shk"] = {"Shilluk"},
["shl"] = {"Shendu"},
["shm"] = {"Shahrudi"},
["shn"] = {"Shan"},
["sho"] = {"Shanga"},
["shp"] = {"Shipibo-Conibo"},
["shq"] = {"Sala"},
["shr"] = {"Shi"},
["shs"] = {"Shuswap"},
["sht"] = {"Shasta"},
["shu"] = {"Chadian Arabic"},
["shv"] = {"Shehri"},
["shw"] = {"Shwai"},
["shx"] = {"She"},
["shy"] = {"Tachawit"},
["shz"] = {"Syenara Senoufo"},
["sia"] = {"Akkala Sami"},
["sib"] = {"Sebop"},
["sid"] = {"Sidamo"},
["sie"] = {"Simaa"},
["sif"] = {"Siamou"},
["sig"] = {"Paasaal"},
["sih"] = {"Zire", "Sîshëë"},
["sii"] = {"Shom Peng"},
["sij"] = {"Numbami"},
["sik"] = {"Sikiana"},
["sil"] = {"Tumulung Sisaala"},
["sim"] = {"Mende (Papua New Guinea)"},
["sio"] = {"Siouan languages"},
["sip"] = {"Sikkimese"},
["siq"] = {"Sonia"},
["sir"] = {"Siri"},
["sis"] = {"Siuslaw"},
["sit"] = {"Sino-Tibetan languages"},
["siu"] = {"Sinagen"},
["siv"] = {"Sumariup"},
["siw"] = {"Siwai"},
["six"] = {"Sumau"},
["siy"] = {"Sivandi"},
["siz"] = {"Siwi"},
["sja"] = {"Epena"},
["sjb"] = {"Sajau Basap"},
["sjd"] = {"Kildin Sami"},
["sje"] = {"Pite Sami"},
["sjg"] = {"Assangori"},
["sjk"] = {"Kemi Sami"},
["sjl"] = {"Sajalong", "Miji"},
["sjm"] = {"Mapun"},
["sjn"] = {"Sindarin"},
["sjo"] = {"Xibe"},
["sjp"] = {"Surjapuri"},
["sjr"] = {"Siar-Lak"},
["sjs"] = {"Senhaja De Srair"},
["sjt"] = {"Ter Sami"},
["sju"] = {"Ume Sami"},
["sjw"] = {"Shawnee"},
["ska"] = {"Skagit"},
["skb"] = {"Saek"},
["skc"] = {"Ma Manda"},
["skd"] = {"Southern Sierra Miwok"},
["ske"] = {"Seke (Vanuatu)"},
["skf"] = {"Sakirabiá"},
["skg"] = {"Sakalava Malagasy"},
["skh"] = {"Sikule"},
["ski"] = {"Sika"},
["skj"] = {"Seke (Nepal)"},
["skm"] = {"Kutong"},
["skn"] = {"Kolibugan Subanon"},
["sko"] = {"Seko Tengah"},
["skp"] = {"Sekapan"},
["skq"] = {"Sininkere"},
["skr"] = {"Saraiki", "Seraiki"},
["sks"] = {"Maia"},
["skt"] = {"Sakata"},
["sku"] = {"Sakao"},
["skv"] = {"Skou"},
["skw"] = {"Skepi Creole Dutch"},
["skx"] = {"Seko Padang"},
["sky"] = {"Sikaiana"},
["skz"] = {"Sekar"},
["sla"] = {"Slavic languages"},
["slc"] = {"Sáliba"},
["sld"] = {"Sissala"},
["sle"] = {"Sholaga"},
["slf"] = {"Swiss-Italian Sign Language"},
["slg"] = {"Selungai Murut"},
["slh"] = {"Southern Puget Sound Salish"},
["sli"] = {"Lower Silesian"},
["slj"] = {"Salumá"},
["sll"] = {"Salt-Yui"},
["slm"] = {"Pangutaran Sama"},
["sln"] = {"Salinan"},
["slp"] = {"Lamaholot"},
["slq"] = {"Salchuq"},
["slr"] = {"Salar"},
["sls"] = {"Singapore Sign Language"},
["slt"] = {"Sila"},
["slu"] = {"Selaru"},
["slw"] = {"Sialum"},
["slx"] = {"Salampasu"},
["sly"] = {"Selayar"},
["slz"] = {"Ma'ya"},
["sma"] = {"Southern Sami"},
["smb"] = {"Simbari"},
["smc"] = {"Som"},
["smf"] = {"Auwe"},
["smg"] = {"Simbali"},
["smh"] = {"Samei"},
["smi"] = {"Sami languages"},
["smj"] = {"Lule Sami"},
["smk"] = {"Bolinao"},
["sml"] = {"Central Sama"},
["smm"] = {"Musasa"},
["smn"] = {"Inari Sami"},
["smp"] = {"Samaritan"},
["smq"] = {"Samo"},
["smr"] = {"Simeulue"},
["sms"] = {"Skolt Sami"},
["smt"] = {"Simte"},
["smu"] = {"Somray"},
["smv"] = {"Samvedi"},
["smw"] = {"Sumbawa"},
["smx"] = {"Samba"},
["smy"] = {"Semnani"},
["smz"] = {"Simeku"},
["snc"] = {"Sinaugoro"},
["sne"] = {"Bau Bidayuh"},
["snf"] = {"Noon"},
["sng"] = {"Sanga (Democratic Republic of Congo)"},
["sni"] = {"Sensi"},
["snj"] = {"Riverain Sango"},
["snk"] = {"Soninke"},
["snl"] = {"Sangil"},
["snm"] = {"Southern Ma'di"},
["snn"] = {"Siona"},
["sno"] = {"Snohomish"},
["snp"] = {"Siane"},
["snq"] = {"Sangu (Gabon)"},
["snr"] = {"Sihan"},
["sns"] = {"South West Bay", "Nahavaq"},
["snu"] = {"Senggi", "Viid"},
["snv"] = {"Sa'ban"},
["snw"] = {"Selee"},
["snx"] = {"Sam"},
["sny"] = {"Saniyo-Hiyewe"},
["snz"] = {"Kou"},
["soa"] = {"Thai Song"},
["sob"] = {"Sobei"},
["soc"] = {"So (Democratic Republic of Congo)"},
["sod"] = {"Songoora"},
["soe"] = {"Songomeno"},
["sog"] = {"Sogdian"},
["soh"] = {"Aka"},
["soi"] = {"Sonha"},
["soj"] = {"Soi"},
["sok"] = {"Sokoro"},
["sol"] = {"Solos"},
["son"] = {"Songhai languages"},
["soo"] = {"Songo"},
["sop"] = {"Songe"},
["soq"] = {"Kanasi"},
["sor"] = {"Somrai"},
["sos"] = {"Seeku"},
["sou"] = {"Southern Thai"},
["sov"] = {"Sonsorol"},
["sow"] = {"Sowanda"},
["sox"] = {"Swo"},
["soy"] = {"Miyobe"},
["soz"] = {"Temi"},
["spb"] = {"Sepa (Indonesia)"},
["spc"] = {"Sapé"},
["spd"] = {"Saep"},
["spe"] = {"Sepa (Papua New Guinea)"},
["spg"] = {"Sian"},
["spi"] = {"Saponi"},
["spk"] = {"Sengo"},
["spl"] = {"Selepet"},
["spm"] = {"Akukem"},
["spn"] = {"Sanapaná"},
["spo"] = {"Spokane"},
["spp"] = {"Supyire Senoufo"},
["spq"] = {"Loreto-Ucayali Spanish"},
["spr"] = {"Saparua"},
["sps"] = {"Saposa"},
["spt"] = {"Spiti Bhoti"},
["spu"] = {"Sapuan"},
["spv"] = {"Sambalpuri", "Kosli"},
["spx"] = {"South Picene"},
["spy"] = {"Sabaot"},
["sqa"] = {"Shama-Sambuga"},
["sqh"] = {"Shau"},
["sqj"] = {"Albanian languages"},
["sqk"] = {"Albanian Sign Language"},
["sqm"] = {"Suma"},
["sqn"] = {"Susquehannock"},
["sqo"] = {"Sorkhei"},
["sqq"] = {"Sou"},
["sqr"] = {"Siculo Arabic"},
["sqs"] = {"Sri Lankan Sign Language"},
["sqt"] = {"Soqotri"},
["squ"] = {"Squamish"},
["sqx"] = {"Kufr Qassem Sign Language (KQSL)"},
["sra"] = {"Saruga"},
["srb"] = {"Sora"},
["src"] = {"Logudorese Sardinian"},
["sre"] = {"Sara"},
["srf"] = {"Nafi"},
["srg"] = {"Sulod"},
["srh"] = {"Sarikoli"},
["sri"] = {"Siriano"},
["srk"] = {"Serudung Murut"},
["srl"] = {"Isirawa"},
["srm"] = {"Saramaccan"},
["srn"] = {"Sranan Tongo"},
["sro"] = {"Campidanese Sardinian"},
["srq"] = {"Sirionó"},
["srr"] = {"Serer"},
["srs"] = {"Sarsi"},
["srt"] = {"Sauri"},
["sru"] = {"Suruí"},
["srv"] = {"Southern Sorsoganon"},
["srw"] = {"Serua"},
["srx"] = {"Sirmauri"},
["sry"] = {"Sera"},
["srz"] = {"Shahmirzadi"},
["ssa"] = {"Nilo-Saharan languages"},
["ssb"] = {"Southern Sama"},
["ssc"] = {"Suba-Simbiti"},
["ssd"] = {"Siroi"},
["sse"] = {"Balangingi", "Bangingih Sama"},
["ssf"] = {"Thao"},
["ssg"] = {"Seimat"},
["ssh"] = {"Shihhi Arabic"},
["ssi"] = {"Sansi"},
["ssj"] = {"Sausi"},
["ssk"] = {"Sunam"},
["ssl"] = {"Western Sisaala"},
["ssm"] = {"Semnam"},
["ssn"] = {"Waata"},
["sso"] = {"Sissano"},
["ssp"] = {"Spanish Sign Language"},
["ssq"] = {"So'a"},
["ssr"] = {"Swiss-French Sign Language"},
["sss"] = {"Sô"},
["sst"] = {"Sinasina"},
["ssu"] = {"Susuami"},
["ssv"] = {"Shark Bay"},
["ssx"] = {"Samberigi"},
["ssy"] = {"Saho"},
["ssz"] = {"Sengseng"},
["sta"] = {"Settla"},
["stb"] = {"Northern Subanen"},
["std"] = {"Sentinel"},
["ste"] = {"Liana-Seti"},
["stf"] = {"Seta"},
["stg"] = {"Trieng"},
["sth"] = {"Shelta"},
["sti"] = {"Bulo Stieng"},
["stj"] = {"Matya Samo"},
["stk"] = {"Arammba"},
["stl"] = {"Stellingwerfs"},
["stm"] = {"Setaman"},
["stn"] = {"Owa"},
["sto"] = {"Stoney"},
["stp"] = {"Southeastern Tepehuan"},
["stq"] = {"Saterfriesisch"},
["str"] = {"Straits Salish"},
["sts"] = {"Shumashti"},
["stt"] = {"Budeh Stieng"},
["stu"] = {"Samtao"},
["stv"] = {"Silt'e"},
["stw"] = {"Satawalese"},
["sty"] = {"Siberian Tatar"},
["sua"] = {"Sulka"},
["sub"] = {"Suku"},
["suc"] = {"Western Subanon"},
["sue"] = {"Suena"},
["sug"] = {"Suganga"},
["sui"] = {"Suki"},
["suj"] = {"Shubi"},
["suk"] = {"Sukuma"},
["suo"] = {"Bouni"},
["suq"] = {"Tirmaga-Chai Suri", "Suri"},
["sur"] = {"Mwaghavul"},
["sus"] = {"Susu"},
["sut"] = {"Subtiaba"},
["suv"] = {"Puroik"},
["suw"] = {"Sumbwa"},
["sux"] = {"Sumerian"},
["suy"] = {"Suyá"},
["suz"] = {"Sunwar"},
["sva"] = {"Svan"},
["svb"] = {"Ulau-Suain"},
["svc"] = {"Vincentian Creole English"},
["sve"] = {"Serili"},
["svk"] = {"Slovakian Sign Language"},
["svm"] = {"Slavomolisano"},
["svs"] = {"Savosavo"},
["svx"] = {"Skalvian"},
["swb"] = {"Maore Comorian"},
["swc"] = {"Congo Swahili"},
["swf"] = {"Sere"},
["swg"] = {"Swabian"},
["swh"] = {"Swahili (individual language)", "Kiswahili"},
["swi"] = {"Sui"},
["swj"] = {"Sira"},
["swk"] = {"Malawi Sena"},
["swl"] = {"Swedish Sign Language"},
["swm"] = {"Samosa"},
["swn"] = {"Sawknah"},
["swo"] = {"Shanenawa"},
["swp"] = {"Suau"},
["swq"] = {"Sharwa"},
["swr"] = {"Saweru"},
["sws"] = {"Seluwasan"},
["swt"] = {"Sawila"},
["swu"] = {"Suwawa"},
["swv"] = {"Shekhawati"},
["sww"] = {"Sowa"},
["swx"] = {"Suruahá"},
["swy"] = {"Sarua"},
["sxb"] = {"Suba"},
["sxc"] = {"Sicanian"},
["sxe"] = {"Sighu"},
["sxg"] = {"Shuhi", "Shixing"},
["sxk"] = {"Southern Kalapuya"},
["sxl"] = {"Selian"},
["sxm"] = {"Samre"},
["sxn"] = {"Sangir"},
["sxo"] = {"Sorothaptic"},
["sxr"] = {"Saaroa"},
["sxs"] = {"Sasaru"},
["sxu"] = {"Upper Saxon"},
["sxw"] = {"Saxwe Gbe"},
["sya"] = {"Siang"},
["syb"] = {"Central Subanen"},
["syc"] = {"Classical Syriac"},
["syd"] = {"Samoyedic languages"},
["syi"] = {"Seki"},
["syk"] = {"Sukur"},
["syl"] = {"Sylheti"},
["sym"] = {"Maya Samo"},
["syn"] = {"Senaya"},
["syo"] = {"Suoy"},
["syr"] = {"Syriac"},
["sys"] = {"Sinyar"},
["syw"] = {"Kagate"},
["syx"] = {"Samay"},
["syy"] = {"Al-Sayyid Bedouin Sign Language"},
["sza"] = {"Semelai"},
["szb"] = {"Ngalum"},
["szc"] = {"Semaq Beri"},
["szd"] = {"Seru"},
["sze"] = {"Seze"},
["szg"] = {"Sengele"},
["szl"] = {"Silesian"},
["szn"] = {"Sula"},
["szp"] = {"Suabo"},
["szs"] = {"Solomon Islands Sign Language"},
["szv"] = {"Isu (Fako Division)"},
["szw"] = {"Sawai"},
["szy"] = {"Sakizaya"},
["taa"] = {"Lower Tanana"},
["tab"] = {"Tabassaran"},
["tac"] = {"Lowland Tarahumara"},
["tad"] = {"Tause"},
["tae"] = {"Tariana"},
["taf"] = {"Tapirapé"},
["tag"] = {"Tagoi"},
["tai"] = {"Tai languages"},
["taj"] = {"Eastern Tamang"},
["tak"] = {"Tala"},
["tal"] = {"Tal"},
["tan"] = {"Tangale"},
["tao"] = {"Yami"},
["tap"] = {"Taabwa"},
["taq"] = {"Tamasheq"},
["tar"] = {"Central Tarahumara"},
["tas"] = {"Tay Boi"},
["tau"] = {"Upper Tanana"},
["tav"] = {"Tatuyo"},
["taw"] = {"Tai"},
["tax"] = {"Tamki"},
["tay"] = {"Atayal"},
["taz"] = {"Tocho"},
["tba"] = {"Aikanã"},
["tbc"] = {"Takia"},
["tbd"] = {"Kaki Ae"},
["tbe"] = {"Tanimbili"},
["tbf"] = {"Mandara"},
["tbg"] = {"North Tairora"},
["tbh"] = {"Dharawal", "Thurawal"},
["tbi"] = {"Gaam"},
["tbj"] = {"Tiang"},
["tbk"] = {"Calamian Tagbanwa"},
["tbl"] = {"Tboli"},
["tbm"] = {"Tagbu"},
["tbn"] = {"Barro Negro Tunebo"},
["tbo"] = {"Tawala"},
["tbp"] = {"Taworta", "Diebroud"},
["tbq"] = {"Tibeto-Burman languages"},
["tbr"] = {"Tumtum"},
["tbs"] = {"Tanguat"},
["tbt"] = {"Tembo (Kitembo)"},
["tbu"] = {"Tubar"},
["tbv"] = {"Tobo"},
["tbw"] = {"Tagbanwa"},
["tbx"] = {"Kapin"},
["tby"] = {"Tabaru"},
["tbz"] = {"Ditammari"},
["tca"] = {"Ticuna"},
["tcb"] = {"Tanacross"},
["tcc"] = {"Datooga"},
["tcd"] = {"Tafi"},
["tce"] = {"Southern Tutchone"},
["tcf"] = {"Malinaltepec Me'phaa", "Malinaltepec Tlapanec"},
["tcg"] = {"Tamagario"},
["tch"] = {"Turks And Caicos Creole English"},
["tci"] = {"Wára"},
["tck"] = {"Tchitchege"},
["tcl"] = {"Taman (Myanmar)"},
["tcm"] = {"Tanahmerah"},
["tcn"] = {"Tichurong"},
["tco"] = {"Taungyo"},
["tcp"] = {"Tawr Chin"},
["tcq"] = {"Kaiy"},
["tcs"] = {"Torres Strait Creole", "Yumplatok"},
["tct"] = {"T'en"},
["tcu"] = {"Southeastern Tarahumara"},
["tcw"] = {"Tecpatlán Totonac"},
["tcx"] = {"Toda"},
["tcy"] = {"Tulu"},
["tcz"] = {"Thado Chin"},
["tda"] = {"Tagdal"},
["tdb"] = {"Panchpargania"},
["tdc"] = {"Emberá-Tadó"},
["tdd"] = {"Tai Nüa"},
["tde"] = {"Tiranige Diga Dogon"},
["tdf"] = {"Talieng"},
["tdg"] = {"Western Tamang"},
["tdh"] = {"Thulung"},
["tdi"] = {"Tomadino"},
["tdj"] = {"Tajio"},
["tdk"] = {"Tambas"},
["tdl"] = {"Sur"},
["tdm"] = {"Taruma"},
["tdn"] = {"Tondano"},
["tdo"] = {"Teme"},
["tdq"] = {"Tita"},
["tdr"] = {"Todrah"},
["tds"] = {"Doutai"},
["tdt"] = {"Tetun Dili"},
["tdv"] = {"Toro"},
["tdx"] = {"Tandroy-Mahafaly Malagasy"},
["tdy"] = {"Tadyawan"},
["tea"] = {"Temiar"},
["teb"] = {"Tetete"},
["tec"] = {"Terik"},
["ted"] = {"Tepo Krumen"},
["tee"] = {"Huehuetla Tepehua"},
["tef"] = {"Teressa"},
["teg"] = {"Teke-Tege"},
["teh"] = {"Tehuelche"},
["tei"] = {"Torricelli"},
["tek"] = {"Ibali Teke"},
["tem"] = {"Timne"},
["ten"] = {"Tama (Colombia)"},
["teo"] = {"Teso"},
["tep"] = {"Tepecano"},
["teq"] = {"Temein"},
["ter"] = {"Tereno"},
["tes"] = {"Tengger"},
["tet"] = {"Tetum"},
["teu"] = {"Soo"},
["tev"] = {"Teor"},
["tew"] = {"Tewa (USA)"},
["tex"] = {"Tennet"},
["tey"] = {"Tulishi"},
["tez"] = {"Tetserret"},
["tfi"] = {"Tofin Gbe"},
["tfn"] = {"Tanaina"},
["tfo"] = {"Tefaro"},
["tfr"] = {"Teribe"},
["tft"] = {"Ternate"},
["tga"] = {"Sagalla"},
["tgb"] = {"Tobilung"},
["tgc"] = {"Tigak"},
["tgd"] = {"Ciwogai"},
["tge"] = {"Eastern Gorkha Tamang"},
["tgf"] = {"Chalikha"},
["tgh"] = {"Tobagonian Creole English"},
["tgi"] = {"Lawunuia"},
["tgj"] = {"Tagin"},
["tgn"] = {"Tandaganon"},
["tgo"] = {"Sudest"},
["tgp"] = {"Tangoa"},
["tgq"] = {"Tring"},
["tgr"] = {"Tareng"},
["tgs"] = {"Nume"},
["tgt"] = {"Central Tagbanwa"},
["tgu"] = {"Tanggu"},
["tgv"] = {"Tingui-Boto"},
["tgw"] = {"Tagwana Senoufo"},
["tgx"] = {"Tagish"},
["tgy"] = {"Togoyo"},
["tgz"] = {"Tagalaka"},
["thd"] = {"Kuuk Thaayorre", "Thayore"},
["the"] = {"Chitwania Tharu"},
["thf"] = {"Thangmi"},
["thh"] = {"Northern Tarahumara"},
["thi"] = {"Tai Long"},
["thk"] = {"Tharaka", "Kitharaka"},
["thl"] = {"Dangaura Tharu"},
["thm"] = {"Aheu"},
["thn"] = {"Thachanadan"},
["thp"] = {"Thompson"},
["thq"] = {"Kochila Tharu"},
["thr"] = {"Rana Tharu"},
["ths"] = {"Thakali"},
["tht"] = {"Tahltan"},
["thu"] = {"Thuri"},
["thv"] = {"Tahaggart Tamahaq"},
["thy"] = {"Tha"},
["thz"] = {"Tayart Tamajeq"},
["tia"] = {"Tidikelt Tamazight"},
["tic"] = {"Tira"},
["tif"] = {"Tifal"},
["tig"] = {"Tigre"},
["tih"] = {"Timugon Murut"},
["tii"] = {"Tiene"},
["tij"] = {"Tilung"},
["tik"] = {"Tikar"},
["til"] = {"Tillamook"},
["tim"] = {"Timbe"},
["tin"] = {"Tindi"},
["tio"] = {"Teop"},
["tip"] = {"Trimuris"},
["tiq"] = {"Tiéfo"},
["tis"] = {"Masadiit Itneg"},
["tit"] = {"Tinigua"},
["tiu"] = {"Adasen"},
["tiv"] = {"Tiv"},
["tiw"] = {"Tiwi"},
["tix"] = {"Southern Tiwa"},
["tiy"] = {"Tiruray"},
["tiz"] = {"Tai Hongjin"},
["tja"] = {"Tajuasohn"},
["tjg"] = {"Tunjung"},
["tji"] = {"Northern Tujia"},
["tjj"] = {"Tjungundji"},
["tjl"] = {"Tai Laing"},
["tjm"] = {"Timucua"},
["tjn"] = {"Tonjon"},
["tjo"] = {"Temacine Tamazight"},
["tjp"] = {"Tjupany"},
["tjs"] = {"Southern Tujia"},
["tju"] = {"Tjurruru"},
["tjw"] = {"Djabwurrung"},
["tka"] = {"Truká"},
["tkb"] = {"Buksa"},
["tkd"] = {"Tukudede"},
["tke"] = {"Takwane"},
["tkf"] = {"Tukumanféd"},
["tkg"] = {"Tesaka Malagasy"},
["tkl"] = {"Tokelau"},
["tkm"] = {"Takelma"},
["tkn"] = {"Toku-No-Shima"},
["tkp"] = {"Tikopia"},
["tkq"] = {"Tee"},
["tkr"] = {"Tsakhur"},
["tks"] = {"Takestani"},
["tkt"] = {"Kathoriya Tharu"},
["tku"] = {"Upper Necaxa Totonac"},
["tkv"] = {"Mur Pano"},
["tkw"] = {"Teanu"},
["tkx"] = {"Tangko"},
["tkz"] = {"Takua"},
["tla"] = {"Southwestern Tepehuan"},
["tlb"] = {"Tobelo"},
["tlc"] = {"Yecuatla Totonac"},
["tld"] = {"Talaud"},
["tlf"] = {"Telefol"},
["tlg"] = {"Tofanma"},
["tlh"] = {"Klingon", "tlhIngan Hol"},
["tli"] = {"Tlingit"},
["tlj"] = {"Talinga-Bwisi"},
["tlk"] = {"Taloki"},
["tll"] = {"Tetela"},
["tlm"] = {"Tolomako"},
["tln"] = {"Talondo'"},
["tlo"] = {"Talodi"},
["tlp"] = {"Filomena Mata-Coahuitlán Totonac"},
["tlq"] = {"Tai Loi"},
["tlr"] = {"Talise"},
["tls"] = {"Tambotalo"},
["tlt"] = {"Sou Nama", "Teluti"},
["tlu"] = {"Tulehu"},
["tlv"] = {"Taliabu"},
["tlx"] = {"Khehek"},
["tly"] = {"Talysh"},
["tma"] = {"Tama (Chad)"},
["tmb"] = {"Katbol", "Avava"},
["tmc"] = {"Tumak"},
["tmd"] = {"Haruai"},
["tme"] = {"Tremembé"},
["tmf"] = {"Toba-Maskoy"},
["tmg"] = {"Ternateño"},
["tmh"] = {"Tamashek"},
["tmi"] = {"Tutuba"},
["tmj"] = {"Samarokena"},
["tmk"] = {"Northwestern Tamang"},
["tml"] = {"Tamnim Citak"},
["tmm"] = {"Tai Thanh"},
["tmn"] = {"Taman (Indonesia)"},
["tmo"] = {"Temoq"},
["tmq"] = {"Tumleo"},
["tmr"] = {"Jewish Babylonian Aramaic (ca. 200-1200 CE)"},
["tms"] = {"Tima"},
["tmt"] = {"Tasmate"},
["tmu"] = {"Iau"},
["tmv"] = {"Tembo (Motembo)"},
["tmw"] = {"Temuan"},
["tmy"] = {"Tami"},
["tmz"] = {"Tamanaku"},
["tna"] = {"Tacana"},
["tnb"] = {"Western Tunebo"},
["tnc"] = {"Tanimuca-Retuarã"},
["tnd"] = {"Angosturas Tunebo"},
["tng"] = {"Tobanga"},
["tnh"] = {"Maiani"},
["tni"] = {"Tandia"},
["tnk"] = {"Kwamera"},
["tnl"] = {"Lenakel"},
["tnm"] = {"Tabla"},
["tnn"] = {"North Tanna"},
["tno"] = {"Toromono"},
["tnp"] = {"Whitesands"},
["tnq"] = {"Taino"},
["tnr"] = {"Ménik"},
["tns"] = {"Tenis"},
["tnt"] = {"Tontemboan"},
["tnu"] = {"Tay Khang"},
["tnv"] = {"Tangchangya"},
["tnw"] = {"Tonsawang"},
["tnx"] = {"Tanema"},
["tny"] = {"Tongwe"},
["tnz"] = {"Ten'edn"},
["tob"] = {"Toba"},
["toc"] = {"Coyutla Totonac"},
["tod"] = {"Toma"},
["tof"] = {"Gizrra"},
["tog"] = {"Tonga (Nyasa)"},
["toh"] = {"Gitonga"},
["toi"] = {"Tonga (Zambia)"},
["toj"] = {"Tojolabal"},
["tok"] = {"Toki Pona"},
["tol"] = {"Tolowa"},
["tom"] = {"Tombulu"},
["too"] = {"Xicotepec De Juárez Totonac"},
["top"] = {"Papantla Totonac"},
["toq"] = {"Toposa"},
["tor"] = {"Togbo-Vara Banda"},
["tos"] = {"Highland Totonac"},
["tou"] = {"Tho"},
["tov"] = {"Upper Taromi"},
["tow"] = {"Jemez"},
["tox"] = {"Tobian"},
["toy"] = {"Topoiyo"},
["toz"] = {"To"},
["tpa"] = {"Taupota"},
["tpc"] = {"Azoyú Me'phaa", "Azoyú Tlapanec"},
["tpe"] = {"Tippera"},
["tpf"] = {"Tarpia"},
["tpg"] = {"Kula"},
["tpi"] = {"Tok Pisin"},
["tpj"] = {"Tapieté"},
["tpk"] = {"Tupinikin"},
["tpl"] = {"Tlacoapa Me'phaa", "Tlacoapa Tlapanec"},
["tpm"] = {"Tampulma"},
["tpn"] = {"Tupinambá"},
["tpo"] = {"Tai Pao"},
["tpp"] = {"Pisaflores Tepehua"},
["tpq"] = {"Tukpa"},
["tpr"] = {"Tuparí"},
["tpt"] = {"Tlachichilco Tepehua"},
["tpu"] = {"Tampuan"},
["tpv"] = {"Tanapag"},
["tpw"] = {"Tupí"},
["tpx"] = {"Acatepec Me'phaa", "Acatepec Tlapanec"},
["tpy"] = {"Trumai"},
["tpz"] = {"Tinputz"},
["tqb"] = {"Tembé"},
["tql"] = {"Lehali"},
["tqm"] = {"Turumsa"},
["tqn"] = {"Tenino"},
["tqo"] = {"Toaripi"},
["tqp"] = {"Tomoip"},
["tqq"] = {"Tunni"},
["tqr"] = {"Torona"},
["tqt"] = {"Western Totonac"},
["tqu"] = {"Touo"},
["tqw"] = {"Tonkawa"},
["tra"] = {"Tirahi"},
["trb"] = {"Terebu"},
["trc"] = {"Copala Triqui"},
["trd"] = {"Turi"},
["tre"] = {"East Tarangan"},
["trf"] = {"Trinidadian Creole English"},
["trg"] = {"Lishán Didán"},
["trh"] = {"Turaka"},
["tri"] = {"Trió"},
["trj"] = {"Toram"},
["trk"] = {"Turkic languages"},
["trl"] = {"Traveller Scottish"},
["trm"] = {"Tregami"},
["trn"] = {"Trinitario"},
["tro"] = {"Tarao Naga"},
["trp"] = {"Kok Borok"},
["trq"] = {"San Martín Itunyoso Triqui"},
["trr"] = {"Taushiro"},
["trs"] = {"Chicahuaxtla Triqui"},
["trt"] = {"Tunggare"},
["tru"] = {"Turoyo", "Surayt"},
["trv"] = {"Sediq", "Seediq", "Taroko"},
["trw"] = {"Torwali"},
["trx"] = {"Tringgus-Sembaan Bidayuh"},
["try"] = {"Turung"},
["trz"] = {"Torá"},
["tsa"] = {"Tsaangi"},
["tsb"] = {"Tsamai"},
["tsc"] = {"Tswa"},
["tsd"] = {"Tsakonian"},
["tse"] = {"Tunisian Sign Language"},
["tsg"] = {"Tausug"},
["tsh"] = {"Tsuvan"},
["tsi"] = {"Tsimshian"},
["tsj"] = {"Tshangla"},
["tsk"] = {"Tseku"},
["tsl"] = {"Ts'ün-Lao"},
["tsm"] = {"Turkish Sign Language", "Türk İşaret Dili"},
["tsp"] = {"Northern Toussian"},
["tsq"] = {"Thai Sign Language"},
["tsr"] = {"Akei"},
["tss"] = {"Taiwan Sign Language"},
["tst"] = {"Tondi Songway Kiini"},
["tsu"] = {"Tsou"},
["tsv"] = {"Tsogo"},
["tsw"] = {"Tsishingini"},
["tsx"] = {"Mubami"},
["tsy"] = {"Tebul Sign Language"},
["tsz"] = {"Purepecha"},
["tta"] = {"Tutelo"},
["ttb"] = {"Gaa"},
["ttc"] = {"Tektiteko"},
["ttd"] = {"Tauade"},
["tte"] = {"Bwanabwana"},
["ttf"] = {"Tuotomb"},
["ttg"] = {"Tutong"},
["tth"] = {"Upper Ta'oih"},
["tti"] = {"Tobati"},
["ttj"] = {"Tooro"},
["ttk"] = {"Totoro"},
["ttl"] = {"Totela"},
["ttm"] = {"Northern Tutchone"},
["ttn"] = {"Towei"},
["tto"] = {"Lower Ta'oih"},
["ttp"] = {"Tombelala"},
["ttq"] = {"Tawallammat Tamajaq"},
["ttr"] = {"Tera"},
["tts"] = {"Northeastern Thai"},
["ttt"] = {"Muslim Tat"},
["ttu"] = {"Torau"},
["ttv"] = {"Titan"},
["ttw"] = {"Long Wat"},
["tty"] = {"Sikaritai"},
["ttz"] = {"Tsum"},
["tua"] = {"Wiarumus"},
["tub"] = {"Tübatulabal"},
["tuc"] = {"Mutu"},
["tud"] = {"Tuxá"},
["tue"] = {"Tuyuca"},
["tuf"] = {"Central Tunebo"},
["tug"] = {"Tunia"},
["tuh"] = {"Taulil"},
["tui"] = {"Tupuri"},
["tuj"] = {"Tugutil"},
["tul"] = {"Tula"},
["tum"] = {"Tumbuka"},
["tun"] = {"Tunica"},
["tuo"] = {"Tucano"},
["tup"] = {"Tupi languages"},
["tuq"] = {"Tedaga"},
["tus"] = {"Tuscarora"},
["tut"] = {"Altaic languages"},
["tuu"] = {"Tututni"},
["tuv"] = {"Turkana"},
["tuw"] = {"Tungus languages"},
["tux"] = {"Tuxináwa"},
["tuy"] = {"Tugen"},
["tuz"] = {"Turka"},
["tva"] = {"Vaghua"},
["tvd"] = {"Tsuvadi"},
["tve"] = {"Te'un"},
["tvk"] = {"Southeast Ambrym"},
["tvl"] = {"Tuvalu"},
["tvm"] = {"Tela-Masbuar"},
["tvn"] = {"Tavoyan"},
["tvo"] = {"Tidore"},
["tvs"] = {"Taveta"},
["tvt"] = {"Tutsa Naga"},
["tvu"] = {"Tunen"},
["tvw"] = {"Sedoa"},
["tvx"] = {"Taivoan"},
["tvy"] = {"Timor Pidgin"},
["twa"] = {"Twana"},
["twb"] = {"Western Tawbuid"},
["twc"] = {"Teshenawa"},
["twd"] = {"Twents"},
["twe"] = {"Tewa (Indonesia)"},
["twf"] = {"Northern Tiwa"},
["twg"] = {"Tereweng"},
["twh"] = {"Tai Dón"},
["twl"] = {"Tawara"},
["twm"] = {"Tawang Monpa"},
["twn"] = {"Twendi"},
["two"] = {"Tswapong"},
["twp"] = {"Ere"},
["twq"] = {"Tasawaq"},
["twr"] = {"Southwestern Tarahumara"},
["twt"] = {"Turiwára"},
["twu"] = {"Termanu"},
["tww"] = {"Tuwari"},
["twx"] = {"Tewe"},
["twy"] = {"Tawoyan"},
["txa"] = {"Tombonuo"},
["txb"] = {"Tokharian B"},
["txc"] = {"Tsetsaut"},
["txe"] = {"Totoli"},
["txg"] = {"Tangut"},
["txh"] = {"Thracian"},
["txi"] = {"Ikpeng"},
["txj"] = {"Tarjumo"},
["txm"] = {"Tomini"},
["txn"] = {"West Tarangan"},
["txo"] = {"Toto"},
["txq"] = {"Tii"},
["txr"] = {"Tartessian"},
["txs"] = {"Tonsea"},
["txt"] = {"Citak"},
["txu"] = {"Kayapó"},
["txx"] = {"Tatana"},
["txy"] = {"Tanosy Malagasy"},
["tya"] = {"Tauya"},
["tye"] = {"Kyanga"},
["tyh"] = {"O'du"},
["tyi"] = {"Teke-Tsaayi"},
["tyj"] = {"Tai Do", "Tai Yo"},
["tyl"] = {"Thu Lao"},
["tyn"] = {"Kombai"},
["typ"] = {"Thaypan"},
["tyr"] = {"Tai Daeng"},
["tys"] = {"Tày Sa Pa"},
["tyt"] = {"Tày Tac"},
["tyu"] = {"Kua"},
["tyv"] = {"Tuvinian"},
["tyx"] = {"Teke-Tyee"},
["tyy"] = {"Tiyaa"},
["tyz"] = {"Tày"},
["tza"] = {"Tanzanian Sign Language"},
["tzh"] = {"Tzeltal"},
["tzj"] = {"Tz'utujil"},
["tzl"] = {"Talossan"},
["tzm"] = {"Central Atlas Tamazight"},
["tzn"] = {"Tugun"},
["tzo"] = {"Tzotzil"},
["tzx"] = {"Tabriak"},
["uam"] = {"Uamué"},
["uan"] = {"Kuan"},
["uar"] = {"Tairuma"},
["uba"] = {"Ubang"},
["ubi"] = {"Ubi"},
["ubl"] = {"Buhi'non Bikol"},
["ubr"] = {"Ubir"},
["ubu"] = {"Umbu-Ungu"},
["uby"] = {"Ubykh"},
["uda"] = {"Uda"},
["ude"] = {"Udihe"},
["udg"] = {"Muduga"},
["udi"] = {"Udi"},
["udj"] = {"Ujir"},
["udl"] = {"Wuzlam"},
["udm"] = {"Udmurt"},
["udu"] = {"Uduk"},
["ues"] = {"Kioko"},
["ufi"] = {"Ufim"},
["uga"] = {"Ugaritic"},
["ugb"] = {"Kuku-Ugbanh"},
["uge"] = {"Ughele"},
["ugh"] = {"Kubachi"},
["ugn"] = {"Ugandan Sign Language"},
["ugo"] = {"Ugong"},
["ugy"] = {"Uruguayan Sign Language"},
["uha"] = {"Uhami"},
["uhn"] = {"Damal"},
["uis"] = {"Uisai"},
["uiv"] = {"Iyive"},
["uji"] = {"Tanjijili"},
["uka"] = {"Kaburi"},
["ukg"] = {"Ukuriguma"},
["ukh"] = {"Ukhwejo"},
["uki"] = {"Kui (India)"},
["ukk"] = {"Muak Sa-aak"},
["ukl"] = {"Ukrainian Sign Language"},
["ukp"] = {"Ukpe-Bayobiri"},
["ukq"] = {"Ukwa"},
["uks"] = {"Urubú-Kaapor Sign Language", "Kaapor Sign Language"},
["uku"] = {"Ukue"},
["ukv"] = {"Kuku"},
["ukw"] = {"Ukwuani-Aboh-Ndoni"},
["uky"] = {"Kuuk-Yak"},
["ula"] = {"Fungwa"},
["ulb"] = {"Ulukwumi"},
["ulc"] = {"Ulch"},
["ule"] = {"Lule"},
["ulf"] = {"Usku", "Afra"},
["uli"] = {"Ulithian"},
["ulk"] = {"Meriam Mir"},
["ull"] = {"Ullatan"},
["ulm"] = {"Ulumanda'"},
["uln"] = {"Unserdeutsch"},
["ulu"] = {"Uma' Lung"},
["ulw"] = {"Ulwa"},
["uma"] = {"Umatilla"},
["umb"] = {"Umbundu"},
["umc"] = {"Marrucinian"},
["umd"] = {"Umbindhamu"},
["umg"] = {"Morrobalama", "Umbuygamu"},
["umi"] = {"Ukit"},
["umm"] = {"Umon"},
["umn"] = {"Makyan Naga"},
["umo"] = {"Umotína"},
["ump"] = {"Umpila"},
["umr"] = {"Umbugarla"},
["ums"] = {"Pendau"},
["umu"] = {"Munsee"},
["una"] = {"North Watut"},
["und"] = {"Undetermined"},
["une"] = {"Uneme"},
["ung"] = {"Ngarinyin"},
["uni"] = {"Uni"},
["unk"] = {"Enawené-Nawé"},
["unm"] = {"Unami"},
["unn"] = {"Kurnai"},
["unr"] = {"Mundari"},
["unu"] = {"Unubahe"},
["unx"] = {"Munda"},
["unz"] = {"Unde Kaili"},
["uon"] = {"Kulon"},
["upi"] = {"Umeda"},
["upv"] = {"Uripiv-Wala-Rano-Atchin"},
["ura"] = {"Urarina"},
["urb"] = {"Urubú-Kaapor", "Kaapor"},
["urc"] = {"Urningangg"},
["ure"] = {"Uru"},
["urf"] = {"Uradhi"},
["urg"] = {"Urigina"},
["urh"] = {"Urhobo"},
["uri"] = {"Urim"},
["urj"] = {"Uralic languages"},
["urk"] = {"Urak Lawoi'"},
["url"] = {"Urali"},
["urm"] = {"Urapmin"},
["urn"] = {"Uruangnirin"},
["uro"] = {"Ura (Papua New Guinea)"},
["urp"] = {"Uru-Pa-In"},
["urr"] = {"Lehalurup", "Löyöp"},
["urt"] = {"Urat"},
["uru"] = {"Urumi"},
["urv"] = {"Uruava"},
["urw"] = {"Sop"},
["urx"] = {"Urimo"},
["ury"] = {"Orya"},
["urz"] = {"Uru-Eu-Wau-Wau"},
["usa"] = {"Usarufa"},
["ush"] = {"Ushojo"},
["usi"] = {"Usui"},
["usk"] = {"Usaghade"},
["usp"] = {"Uspanteco"},
["uss"] = {"us-Saare"},
["usu"] = {"Uya"},
["uta"] = {"Otank"},
["ute"] = {"Ute-Southern Paiute"},
["uth"] = {"ut-Hun"},
["utp"] = {"Amba (Solomon Islands)"},
["utr"] = {"Etulo"},
["utu"] = {"Utu"},
["uum"] = {"Urum"},
["uur"] = {"Ura (Vanuatu)"},
["uuu"] = {"U"},
["uve"] = {"West Uvean", "Fagauvea"},
["uvh"] = {"Uri"},
["uvl"] = {"Lote"},
["uwa"] = {"Kuku-Uwanh"},
["uya"] = {"Doko-Uyanga"},
["uzn"] = {"Northern Uzbek"},
["uzs"] = {"Southern Uzbek"},
["vaa"] = {"Vaagri Booli"},
["vae"] = {"Vale"},
["vaf"] = {"Vafsi"},
["vag"] = {"Vagla"},
["vah"] = {"Varhadi-Nagpuri"},
["vai"] = {"Vai"},
["vaj"] = {"Sekele", "Northwestern ǃKung", "Vasekele"},
["val"] = {"Vehes"},
["vam"] = {"Vanimo"},
["van"] = {"Valman"},
["vao"] = {"Vao"},
["vap"] = {"Vaiphei"},
["var"] = {"Huarijio"},
["vas"] = {"Vasavi"},
["vau"] = {"Vanuma"},
["vav"] = {"Varli"},
["vay"] = {"Wayu"},
["vbb"] = {"Southeast Babar"},
["vbk"] = {"Southwestern Bontok"},
["vec"] = {"Venetian"},
["ved"] = {"Veddah"},
["vel"] = {"Veluws"},
["vem"] = {"Vemgo-Mabas"},
["veo"] = {"Ventureño"},
["vep"] = {"Veps"},
["ver"] = {"Mom Jango"},
["vgr"] = {"Vaghri"},
["vgt"] = {"Vlaamse Gebarentaal", "Flemish Sign Language"},
["vic"] = {"Virgin Islands Creole English"},
["vid"] = {"Vidunda"},
["vif"] = {"Vili"},
["vig"] = {"Viemo"},
["vil"] = {"Vilela"},
["vin"] = {"Vinza"},
["vis"] = {"Vishavan"},
["vit"] = {"Viti"},
["viv"] = {"Iduna"},
["vka"] = {"Kariyarra"},
["vkj"] = {"Kujarge"},
["vkk"] = {"Kaur"},
["vkl"] = {"Kulisusu"},
["vkm"] = {"Kamakan"},
["vkn"] = {"Koro Nulu"},
["vko"] = {"Kodeoha"},
["vkp"] = {"Korlai Creole Portuguese"},
["vkt"] = {"Tenggarong Kutai Malay"},
["vku"] = {"Kurrama"},
["vkz"] = {"Koro Zuba"},
["vlp"] = {"Valpei"},
["vls"] = {"Vlaams"},
["vma"] = {"Martuyhunira"},
["vmb"] = {"Barbaram"},
["vmc"] = {"Juxtlahuaca Mixtec"},
["vmd"] = {"Mudu Koraga"},
["vme"] = {"East Masela"},
["vmf"] = {"Mainfränkisch"},
["vmg"] = {"Lungalunga"},
["vmh"] = {"Maraghei"},
["vmi"] = {"Miwa"},
["vmj"] = {"Ixtayutla Mixtec"},
["vmk"] = {"Makhuwa-Shirima"},
["vml"] = {"Malgana"},
["vmm"] = {"Mitlatongo Mixtec"},
["vmp"] = {"Soyaltepec Mazatec"},
["vmq"] = {"Soyaltepec Mixtec"},
["vmr"] = {"Marenje"},
["vms"] = {"Moksela"},
["vmu"] = {"Muluridyi"},
["vmv"] = {"Valley Maidu"},
["vmw"] = {"Makhuwa"},
["vmx"] = {"Tamazola Mixtec"},
["vmy"] = {"Ayautla Mazatec"},
["vmz"] = {"Mazatlán Mazatec"},
["vnk"] = {"Vano", "Lovono"},
["vnm"] = {"Vinmavis", "Neve'ei"},
["vnp"] = {"Vunapu"},
["vor"] = {"Voro"},
["vot"] = {"Votic"},
["vra"] = {"Vera'a"},
["vro"] = {"Võro"},
["vrs"] = {"Varisi"},
["vrt"] = {"Burmbar", "Banam Bay"},
["vsi"] = {"Moldova Sign Language"},
["vsl"] = {"Venezuelan Sign Language"},
["vsv"] = {"Valencian Sign Language", "Llengua de signes valenciana"},
["vto"] = {"Vitou"},
["vum"] = {"Vumbu"},
["vun"] = {"Vunjo"},
["vut"] = {"Vute"},
["vwa"] = {"Awa (China)"},
["waa"] = {"Walla Walla"},
["wab"] = {"Wab"},
["wac"] = {"Wasco-Wishram"},
["wad"] = {"Wamesa", "Wondama"},
["wae"] = {"Walser"},
["waf"] = {"Wakoná"},
["wag"] = {"Wa'ema"},
["wah"] = {"Watubela"},
["wai"] = {"Wares"},
["waj"] = {"Waffa"},
["wak"] = {"Wakashan languages"},
["wal"] = {"Wolaytta", "Wolaitta"},
["wam"] = {"Wampanoag"},
["wan"] = {"Wan"},
["wao"] = {"Wappo"},
["wap"] = {"Wapishana"},
["waq"] = {"Wagiman"},
["war"] = {"Waray (Philippines)"},
["was"] = {"Washo"},
["wat"] = {"Kaninuwa"},
["wau"] = {"Waurá"},
["wav"] = {"Waka"},
["waw"] = {"Waiwai"},
["wax"] = {"Watam", "Marangis"},
["way"] = {"Wayana"},
["waz"] = {"Wampur"},
["wba"] = {"Warao"},
["wbb"] = {"Wabo"},
["wbe"] = {"Waritai"},
["wbf"] = {"Wara"},
["wbh"] = {"Wanda"},
["wbi"] = {"Vwanji"},
["wbj"] = {"Alagwa"},
["wbk"] = {"Waigali"},
["wbl"] = {"Wakhi"},
["wbm"] = {"Wa"},
["wbp"] = {"Warlpiri"},
["wbq"] = {"Waddar"},
["wbr"] = {"Wagdi"},
["wbs"] = {"West Bengal Sign Language"},
["wbt"] = {"Warnman"},
["wbv"] = {"Wajarri"},
["wbw"] = {"Woi"},
["wca"] = {"Yanomámi"},
["wci"] = {"Waci Gbe"},
["wdd"] = {"Wandji"},
["wdg"] = {"Wadaginam"},
["wdj"] = {"Wadjiginy"},
["wdk"] = {"Wadikali"},
["wdt"] = {"Wendat"},
["wdu"] = {"Wadjigu"},
["wdy"] = {"Wadjabangayi"},
["wea"] = {"Wewaw"},
["wec"] = {"Wè Western"},
["wed"] = {"Wedau"},
["weg"] = {"Wergaia"},
["weh"] = {"Weh"},
["wei"] = {"Kiunum"},
["wem"] = {"Weme Gbe"},
["wen"] = {"Sorbian languages"},
["weo"] = {"Wemale"},
["wep"] = {"Westphalien"},
["wer"] = {"Weri"},
["wes"] = {"Cameroon Pidgin"},
["wet"] = {"Perai"},
["weu"] = {"Rawngtu Chin"},
["wew"] = {"Wejewa"},
["wfg"] = {"Yafi", "Zorop"},
["wga"] = {"Wagaya"},
["wgb"] = {"Wagawaga"},
["wgg"] = {"Wangkangurru", "Wangganguru"},
["wgi"] = {"Wahgi"},
["wgo"] = {"Waigeo"},
["wgu"] = {"Wirangu"},
["wgy"] = {"Warrgamay"},
["wha"] = {"Sou Upaa", "Manusela"},
["whg"] = {"North Wahgi"},
["whk"] = {"Wahau Kenyah"},
["whu"] = {"Wahau Kayan"},
["wib"] = {"Southern Toussian"},
["wic"] = {"Wichita"},
["wie"] = {"Wik-Epa"},
["wif"] = {"Wik-Keyangan"},
["wig"] = {"Wik Ngathan"},
["wih"] = {"Wik-Me'anha"},
["wii"] = {"Minidien"},
["wij"] = {"Wik-Iiyanh"},
["wik"] = {"Wikalkan"},
["wil"] = {"Wilawila"},
["wim"] = {"Wik-Mungkan"},
["win"] = {"Ho-Chunk"},
["wir"] = {"Wiraféd"},
["wiu"] = {"Wiru"},
["wiv"] = {"Vitu"},
["wiy"] = {"Wiyot"},
["wja"] = {"Waja"},
["wji"] = {"Warji"},
["wka"] = {"Kw'adza"},
["wkb"] = {"Kumbaran"},
["wkd"] = {"Wakde", "Mo"},
["wkl"] = {"Kalanadi"},
["wkr"] = {"Keerray-Woorroong"},
["wku"] = {"Kunduvadi"},
["wkw"] = {"Wakawaka"},
["wky"] = {"Wangkayutyuru"},
["wla"] = {"Walio"},
["wlc"] = {"Mwali Comorian"},
["wle"] = {"Wolane"},
["wlg"] = {"Kunbarlang"},
["wlh"] = {"Welaun"},
["wli"] = {"Waioli"},
["wlk"] = {"Wailaki"},
["wll"] = {"Wali (Sudan)"},
["wlm"] = {"Middle Welsh"},
["wlo"] = {"Wolio"},
["wlr"] = {"Wailapa"},
["wls"] = {"Wallisian"},
["wlu"] = {"Wuliwuli"},
["wlv"] = {"Wichí Lhamtés Vejoz"},
["wlw"] = {"Walak"},
["wlx"] = {"Wali (Ghana)"},
["wly"] = {"Waling"},
["wma"] = {"Mawa (Nigeria)"},
["wmb"] = {"Wambaya"},
["wmc"] = {"Wamas"},
["wmd"] = {"Mamaindé"},
["wme"] = {"Wambule"},
["wmg"] = {"Western Minyag"},
["wmh"] = {"Waima'a"},
["wmi"] = {"Wamin"},
["wmm"] = {"Maiwa (Indonesia)"},
["wmn"] = {"Waamwang"},
["wmo"] = {"Wom (Papua New Guinea)"},
["wms"] = {"Wambon"},
["wmt"] = {"Walmajarri"},
["wmw"] = {"Mwani"},
["wmx"] = {"Womo"},
["wnb"] = {"Wanambre"},
["wnc"] = {"Wantoat"},
["wnd"] = {"Wandarang"},
["wne"] = {"Waneci"},
["wng"] = {"Wanggom"},
["wni"] = {"Ndzwani Comorian"},
["wnk"] = {"Wanukaka"},
["wnm"] = {"Wanggamala"},
["wnn"] = {"Wunumara"},
["wno"] = {"Wano"},
["wnp"] = {"Wanap"},
["wnu"] = {"Usan"},
["wnw"] = {"Wintu"},
["wny"] = {"Wanyi", "Waanyi"},
["woa"] = {"Kuwema", "Tyaraity"},
["wob"] = {"Wè Northern"},
["woc"] = {"Wogeo"},
["wod"] = {"Wolani"},
["woe"] = {"Woleaian"},
["wof"] = {"Gambian Wolof"},
["wog"] = {"Wogamusin"},
["woi"] = {"Kamang"},
["wok"] = {"Longto"},
["wom"] = {"Wom (Nigeria)"},
["won"] = {"Wongo"},
["woo"] = {"Manombai"},
["wor"] = {"Woria"},
["wos"] = {"Hanga Hundi"},
["wow"] = {"Wawonii"},
["woy"] = {"Weyto"},
["wpc"] = {"Maco"},
["wrb"] = {"Waluwarra", "Warluwara"},
["wrg"] = {"Warungu", "Gudjal"},
["wrh"] = {"Wiradjuri"},
["wri"] = {"Wariyangga"},
["wrk"] = {"Garrwa"},
["wrl"] = {"Warlmanpa"},
["wrm"] = {"Warumungu"},
["wrn"] = {"Warnang"},
["wro"] = {"Worrorra"},
["wrp"] = {"Waropen"},
["wrr"] = {"Wardaman"},
["wrs"] = {"Waris"},
["wru"] = {"Waru"},
["wrv"] = {"Waruna"},
["wrw"] = {"Gugu Warra"},
["wrx"] = {"Wae Rana"},
["wry"] = {"Merwari"},
["wrz"] = {"Waray (Australia)"},
["wsa"] = {"Warembori"},
["wsg"] = {"Adilabad Gondi"},
["wsi"] = {"Wusi"},
["wsk"] = {"Waskia"},
["wsr"] = {"Owenia"},
["wss"] = {"Wasa"},
["wsu"] = {"Wasu"},
["wsv"] = {"Wotapuri-Katarqalai"},
["wtf"] = {"Watiwa"},
["wth"] = {"Wathawurrung"},
["wti"] = {"Berta"},
["wtk"] = {"Watakataui"},
["wtm"] = {"Mewati"},
["wtw"] = {"Wotu"},
["wua"] = {"Wikngenchera"},
["wub"] = {"Wunambal"},
["wud"] = {"Wudu"},
["wuh"] = {"Wutunhua"},
["wul"] = {"Silimo"},
["wum"] = {"Wumbvu"},
["wun"] = {"Bungu"},
["wur"] = {"Wurrugu"},
["wut"] = {"Wutung"},
["wuu"] = {"Wu Chinese"},
["wuv"] = {"Wuvulu-Aua"},
["wux"] = {"Wulna"},
["wuy"] = {"Wauyai"},
["wwa"] = {"Waama"},
["wwb"] = {"Wakabunga"},
["wwo"] = {"Wetamut", "Dorig"},
["wwr"] = {"Warrwa"},
["www"] = {"Wawa"},
["wxa"] = {"Waxianghua"},
["wxw"] = {"Wardandi"},
["wyb"] = {"Wangaaybuwan-Ngiyambaa"},
["wyi"] = {"Woiwurrung"},
["wym"] = {"Wymysorys"},
["wyn"] = {"Wyandot"},
["wyr"] = {"Wayoró"},
["wyy"] = {"Western Fijian"},
["xaa"] = {"Andalusian Arabic"},
["xab"] = {"Sambe"},
["xac"] = {"Kachari"},
["xad"] = {"Adai"},
["xae"] = {"Aequian"},
["xag"] = {"Aghwan"},
["xai"] = {"Kaimbé"},
["xaj"] = {"Ararandewára"},
["xak"] = {"Máku"},
["xal"] = {"Kalmyk", "Oirat"},
["xam"] = {"ǀXam"},
["xan"] = {"Xamtanga"},
["xao"] = {"Khao"},
["xap"] = {"Apalachee"},
["xaq"] = {"Aquitanian"},
["xar"] = {"Karami"},
["xas"] = {"Kamas"},
["xat"] = {"Katawixi"},
["xau"] = {"Kauwera"},
["xav"] = {"Xavánte"},
["xaw"] = {"Kawaiisu"},
["xay"] = {"Kayan Mahakam"},
["xbb"] = {"Lower Burdekin"},
["xbc"] = {"Bactrian"},
["xbd"] = {"Bindal"},
["xbe"] = {"Bigambal"},
["xbg"] = {"Bunganditj"},
["xbi"] = {"Kombio"},
["xbj"] = {"Birrpayi"},
["xbm"] = {"Middle Breton"},
["xbn"] = {"Kenaboi"},
["xbo"] = {"Bolgarian"},
["xbp"] = {"Bibbulman"},
["xbr"] = {"Kambera"},
["xbw"] = {"Kambiwá"},
["xby"] = {"Batjala", "Batyala"},
["xcb"] = {"Cumbric"},
["xcc"] = {"Camunic"},
["xce"] = {"Celtiberian"},
["xcg"] = {"Cisalpine Gaulish"},
["xch"] = {"Chemakum", "Chimakum"},
["xcl"] = {"Classical Armenian"},
["xcm"] = {"Comecrudo"},
["xcn"] = {"Cotoname"},
["xco"] = {"Chorasmian"},
["xcr"] = {"Carian"},
["xct"] = {"Classical Tibetan"},
["xcu"] = {"Curonian"},
["xcv"] = {"Chuvantsy"},
["xcw"] = {"Coahuilteco"},
["xcy"] = {"Cayuse"},
["xda"] = {"Darkinyung"},
["xdc"] = {"Dacian"},
["xdk"] = {"Dharuk"},
["xdm"] = {"Edomite"},
["xdo"] = {"Kwandu"},
["xdq"] = {"Kaitag"},
["xdy"] = {"Malayic Dayak"},
["xeb"] = {"Eblan"},
["xed"] = {"Hdi"},
["xeg"] = {"ǁXegwi"},
["xel"] = {"Kelo"},
["xem"] = {"Kembayan"},
["xep"] = {"Epi-Olmec"},
["xer"] = {"Xerénte"},
["xes"] = {"Kesawai"},
["xet"] = {"Xetá"},
["xeu"] = {"Keoru-Ahia"},
["xfa"] = {"Faliscan"},
["xga"] = {"Galatian"},
["xgb"] = {"Gbin"},
["xgd"] = {"Gudang"},
["xgf"] = {"Gabrielino-Fernandeño"},
["xgg"] = {"Goreng"},
["xgi"] = {"Garingbal"},
["xgl"] = {"Galindan"},
["xgm"] = {"Dharumbal", "Guwinmal"},
["xgn"] = {"Mongolian languages"},
["xgr"] = {"Garza"},
["xgu"] = {"Unggumi"},
["xgw"] = {"Guwa"},
["xha"] = {"Harami"},
["xhc"] = {"Hunnic"},
["xhd"] = {"Hadrami"},
["xhe"] = {"Khetrani"},
["xhm"] = {"Middle Khmer (1400 to 1850 CE)"},
["xhr"] = {"Hernican"},
["xht"] = {"Hattic"},
["xhu"] = {"Hurrian"},
["xhv"] = {"Khua"},
["xib"] = {"Iberian"},
["xii"] = {"Xiri"},
["xil"] = {"Illyrian"},
["xin"] = {"Xinca"},
["xir"] = {"Xiriâna"},
["xis"] = {"Kisan"},
["xiv"] = {"Indus Valley Language"},
["xiy"] = {"Xipaya"},
["xjb"] = {"Minjungbal"},
["xjt"] = {"Jaitmatang"},
["xka"] = {"Kalkoti"},
["xkb"] = {"Northern Nago"},
["xkc"] = {"Kho'ini"},
["xkd"] = {"Mendalam Kayan"},
["xke"] = {"Kereho"},
["xkf"] = {"Khengkha"},
["xkg"] = {"Kagoro"},
["xki"] = {"Kenyan Sign Language"},
["xkj"] = {"Kajali"},
["xkk"] = {"Kachok", "Kaco'"},
["xkl"] = {"Mainstream Kenyah"},
["xkn"] = {"Kayan River Kayan"},
["xko"] = {"Kiorr"},
["xkp"] = {"Kabatei"},
["xkq"] = {"Koroni"},
["xkr"] = {"Xakriabá"},
["xks"] = {"Kumbewaha"},
["xkt"] = {"Kantosi"},
["xku"] = {"Kaamba"},
["xkv"] = {"Kgalagadi"},
["xkw"] = {"Kembra"},
["xkx"] = {"Karore"},
["xky"] = {"Uma' Lasan"},
["xkz"] = {"Kurtokha"},
["xla"] = {"Kamula"},
["xlb"] = {"Loup B"},
["xlc"] = {"Lycian"},
["xld"] = {"Lydian"},
["xle"] = {"Lemnian"},
["xlg"] = {"Ligurian (Ancient)"},
["xli"] = {"Liburnian"},
["xln"] = {"Alanic"},
["xlo"] = {"Loup A"},
["xlp"] = {"Lepontic"},
["xls"] = {"Lusitanian"},
["xlu"] = {"Cuneiform Luwian"},
["xly"] = {"Elymian"},
["xma"] = {"Mushungulu"},
["xmb"] = {"Mbonga"},
["xmc"] = {"Makhuwa-Marrevone"},
["xmd"] = {"Mbudum"},
["xme"] = {"Median"},
["xmf"] = {"Mingrelian"},
["xmg"] = {"Mengaka"},
["xmh"] = {"Kugu-Muminh"},
["xmj"] = {"Majera"},
["xmk"] = {"Ancient Macedonian"},
["xml"] = {"Malaysian Sign Language"},
["xmm"] = {"Manado Malay"},
["xmn"] = {"Manichaean Middle Persian"},
["xmo"] = {"Morerebi"},
["xmp"] = {"Kuku-Mu'inh"},
["xmq"] = {"Kuku-Mangk"},
["xmr"] = {"Meroitic"},
["xms"] = {"Moroccan Sign Language"},
["xmt"] = {"Matbat"},
["xmu"] = {"Kamu"},
["xmv"] = {"Antankarana Malagasy", "Tankarana Malagasy"},
["xmw"] = {"Tsimihety Malagasy"},
["xmx"] = {"Salawati", "Maden"},
["xmy"] = {"Mayaguduna"},
["xmz"] = {"Mori Bawah"},
["xna"] = {"Ancient North Arabian"},
["xnb"] = {"Kanakanabu"},
["xnd"] = {"Na-Dene languages"},
["xng"] = {"Middle Mongolian"},
["xnh"] = {"Kuanhua"},
["xni"] = {"Ngarigu"},
["xnj"] = {"Ngoni (Tanzania)"},
["xnk"] = {"Nganakarti"},
["xnm"] = {"Ngumbarl"},
["xnn"] = {"Northern Kankanay"},
["xno"] = {"Anglo-Norman"},
["xnq"] = {"Ngoni (Mozambique)"},
["xnr"] = {"Kangri"},
["xns"] = {"Kanashi"},
["xnt"] = {"Narragansett"},
["xnu"] = {"Nukunul"},
["xny"] = {"Nyiyaparli"},
["xnz"] = {"Kenzi", "Mattoki"},
["xoc"] = {"O'chi'chi'"},
["xod"] = {"Kokoda"},
["xog"] = {"Soga"},
["xoi"] = {"Kominimung"},
["xok"] = {"Xokleng"},
["xom"] = {"Komo (Sudan)"},
["xon"] = {"Konkomba"},
["xoo"] = {"Xukurú"},
["xop"] = {"Kopar"},
["xor"] = {"Korubo"},
["xow"] = {"Kowaki"},
["xpa"] = {"Pirriya"},
["xpb"] = {"Northeastern Tasmanian", "Pyemmairrener"},
["xpc"] = {"Pecheneg"},
["xpd"] = {"Oyster Bay Tasmanian"},
["xpe"] = {"Liberia Kpelle"},
["xpf"] = {"Southeast Tasmanian", "Nuenonne"},
["xpg"] = {"Phrygian"},
["xph"] = {"North Midlands Tasmanian", "Tyerrenoterpanner"},
["xpi"] = {"Pictish"},
["xpj"] = {"Mpalitjanh"},
["xpk"] = {"Kulina Pano"},
["xpl"] = {"Port Sorell Tasmanian"},
["xpm"] = {"Pumpokol"},
["xpn"] = {"Kapinawá"},
["xpo"] = {"Pochutec"},
["xpp"] = {"Puyo-Paekche"},
["xpq"] = {"Mohegan-Pequot"},
["xpr"] = {"Parthian"},
["xps"] = {"Pisidian"},
["xpt"] = {"Punthamara"},
["xpu"] = {"Punic"},
["xpv"] = {"Northern Tasmanian", "Tommeginne"},
["xpw"] = {"Northwestern Tasmanian", "Peerapper"},
["xpx"] = {"Southwestern Tasmanian", "Toogee"},
["xpy"] = {"Puyo"},
["xpz"] = {"Bruny Island Tasmanian"},
["xqa"] = {"Karakhanid"},
["xqt"] = {"Qatabanian"},
["xra"] = {"Krahô"},
["xrb"] = {"Eastern Karaboro"},
["xrd"] = {"Gundungurra"},
["xre"] = {"Kreye"},
["xrg"] = {"Minang"},
["xri"] = {"Krikati-Timbira"},
["xrm"] = {"Armazic"},
["xrn"] = {"Arin"},
["xrr"] = {"Raetic"},
["xrt"] = {"Aranama-Tamique"},
["xru"] = {"Marriammu"},
["xrw"] = {"Karawa"},
["xsa"] = {"Sabaean"},
["xsb"] = {"Sambal"},
["xsc"] = {"Scythian"},
["xsd"] = {"Sidetic"},
["xse"] = {"Sempan"},
["xsh"] = {"Shamang"},
["xsi"] = {"Sio"},
["xsj"] = {"Subi"},
["xsl"] = {"South Slavey"},
["xsm"] = {"Kasem"},
["xsn"] = {"Sanga (Nigeria)"},
["xso"] = {"Solano"},
["xsp"] = {"Silopi"},
["xsq"] = {"Makhuwa-Saka"},
["xsr"] = {"Sherpa"},
["xss"] = {"Assan"},
["xsu"] = {"Sanumá"},
["xsv"] = {"Sudovian"},
["xsy"] = {"Saisiyat"},
["xta"] = {"Alcozauca Mixtec"},
["xtb"] = {"Chazumba Mixtec"},
["xtc"] = {"Katcha-Kadugli-Miri"},
["xtd"] = {"Diuxi-Tilantongo Mixtec"},
["xte"] = {"Ketengban"},
["xtg"] = {"Transalpine Gaulish"},
["xth"] = {"Yitha Yitha"},
["xti"] = {"Sinicahua Mixtec"},
["xtj"] = {"San Juan Teita Mixtec"},
["xtl"] = {"Tijaltepec Mixtec"},
["xtm"] = {"Magdalena Peñasco Mixtec"},
["xtn"] = {"Northern Tlaxiaco Mixtec"},
["xto"] = {"Tokharian A"},
["xtp"] = {"San Miguel Piedras Mixtec"},
["xtq"] = {"Tumshuqese"},
["xtr"] = {"Early Tripuri"},
["xts"] = {"Sindihui Mixtec"},
["xtt"] = {"Tacahua Mixtec"},
["xtu"] = {"Cuyamecalco Mixtec"},
["xtv"] = {"Thawa"},
["xtw"] = {"Tawandê"},
["xty"] = {"Yoloxochitl Mixtec"},
["xua"] = {"Alu Kurumba"},
["xub"] = {"Betta Kurumba"},
["xud"] = {"Umiida"},
["xug"] = {"Kunigami"},
["xuj"] = {"Jennu Kurumba"},
["xul"] = {"Ngunawal", "Nunukul"},
["xum"] = {"Umbrian"},
["xun"] = {"Unggaranggu"},
["xuo"] = {"Kuo"},
["xup"] = {"Upper Umpqua"},
["xur"] = {"Urartian"},
["xut"] = {"Kuthant"},
["xuu"] = {"Kxoe", "Khwedam"},
["xve"] = {"Venetic"},
["xvi"] = {"Kamviri"},
["xvn"] = {"Vandalic"},
["xvo"] = {"Volscian"},
["xvs"] = {"Vestinian"},
["xwa"] = {"Kwaza"},
["xwc"] = {"Woccon"},
["xwd"] = {"Wadi Wadi"},
["xwe"] = {"Xwela Gbe"},
["xwg"] = {"Kwegu"},
["xwj"] = {"Wajuk"},
["xwk"] = {"Wangkumara"},
["xwl"] = {"Western Xwla Gbe"},
["xwo"] = {"Written Oirat"},
["xwr"] = {"Kwerba Mamberamo"},
["xwt"] = {"Wotjobaluk"},
["xww"] = {"Wemba Wemba"},
["xxb"] = {"Boro (Ghana)"},
["xxk"] = {"Ke'o"},
["xxm"] = {"Minkin"},
["xxr"] = {"Koropó"},
["xxt"] = {"Tambora"},
["xya"] = {"Yaygir"},
["xyb"] = {"Yandjibara"},
["xyj"] = {"Mayi-Yapi"},
["xyk"] = {"Mayi-Kulan"},
["xyl"] = {"Yalakalore"},
["xyt"] = {"Mayi-Thakurti"},
["xyy"] = {"Yorta Yorta"},
["xzh"] = {"Zhang-Zhung"},
["xzm"] = {"Zemgalian"},
["xzp"] = {"Ancient Zapotec"},
["yaa"] = {"Yaminahua"},
["yab"] = {"Yuhup"},
["yac"] = {"Pass Valley Yali"},
["yad"] = {"Yagua"},
["yae"] = {"Pumé"},
["yaf"] = {"Yaka (Democratic Republic of Congo)"},
["yag"] = {"Yámana"},
["yah"] = {"Yazgulyam"},
["yai"] = {"Yagnobi"},
["yaj"] = {"Banda-Yangere"},
["yak"] = {"Yakama"},
["yal"] = {"Yalunka"},
["yam"] = {"Yamba"},
["yan"] = {"Mayangna"},
["yao"] = {"Yao"},
["yap"] = {"Yapese"},
["yaq"] = {"Yaqui"},
["yar"] = {"Yabarana"},
["yas"] = {"Nugunu (Cameroon)"},
["yat"] = {"Yambeta"},
["yau"] = {"Yuwana"},
["yav"] = {"Yangben"},
["yaw"] = {"Yawalapití"},
["yax"] = {"Yauma"},
["yay"] = {"Agwagwune"},
["yaz"] = {"Lokaa"},
["yba"] = {"Yala"},
["ybb"] = {"Yemba"},
["ybe"] = {"West Yugur"},
["ybh"] = {"Yakha"},
["ybi"] = {"Yamphu"},
["ybj"] = {"Hasha"},
["ybk"] = {"Bokha"},
["ybl"] = {"Yukuben"},
["ybm"] = {"Yaben"},
["ybn"] = {"Yabaâna"},
["ybo"] = {"Yabong"},
["ybx"] = {"Yawiyo"},
["yby"] = {"Yaweyuha"},
["ych"] = {"Chesu"},
["ycl"] = {"Lolopo"},
["ycn"] = {"Yucuna"},
["ycp"] = {"Chepya"},
["yda"] = {"Yanda"},
["ydd"] = {"Eastern Yiddish"},
["yde"] = {"Yangum Dey"},
["ydg"] = {"Yidgha"},
["ydk"] = {"Yoidik"},
["yea"] = {"Ravula"},
["yec"] = {"Yeniche"},
["yee"] = {"Yimas"},
["yei"] = {"Yeni"},
["yej"] = {"Yevanic"},
["yel"] = {"Yela"},
["yer"] = {"Tarok"},
["yes"] = {"Nyankpa"},
["yet"] = {"Yetfa"},
["yeu"] = {"Yerukula"},
["yev"] = {"Yapunda"},
["yey"] = {"Yeyi"},
["yga"] = {"Malyangapa"},
["ygi"] = {"Yiningayi"},
["ygl"] = {"Yangum Gel"},
["ygm"] = {"Yagomi"},
["ygp"] = {"Gepo"},
["ygr"] = {"Yagaria"},
["ygs"] = {"Yolŋu Sign Language"},
["ygu"] = {"Yugul"},
["ygw"] = {"Yagwoia"},
["yha"] = {"Baha Buyang"},
["yhd"] = {"Judeo-Iraqi Arabic"},
["yhl"] = {"Hlepho Phowa"},
["yhs"] = {"Yan-nhaŋu Sign Language"},
["yia"] = {"Yinggarda"},
["yif"] = {"Ache"},
["yig"] = {"Wusa Nasu"},
["yih"] = {"Western Yiddish"},
["yii"] = {"Yidiny"},
["yij"] = {"Yindjibarndi"},
["yik"] = {"Dongshanba Lalo"},
["yil"] = {"Yindjilandji"},
["yim"] = {"Yimchungru Naga"},
["yin"] = {"Riang Lai", "Yinchia"},
["yip"] = {"Pholo"},
["yiq"] = {"Miqie"},
["yir"] = {"North Awyu"},
["yis"] = {"Yis"},
["yit"] = {"Eastern Lalu"},
["yiu"] = {"Awu"},
["yiv"] = {"Northern Nisu"},
["yix"] = {"Axi Yi"},
["yiz"] = {"Azhe"},
["yka"] = {"Yakan"},
["ykg"] = {"Northern Yukaghir"},
["yki"] = {"Yoke"},
["ykk"] = {"Yakaikeke"},
["ykl"] = {"Khlula"},
["ykm"] = {"Kap"},
["ykn"] = {"Kua-nsi"},
["yko"] = {"Yasa"},
["ykr"] = {"Yekora"},
["ykt"] = {"Kathu"},
["yku"] = {"Kuamasi"},
["yky"] = {"Yakoma"},
["yla"] = {"Yaul"},
["ylb"] = {"Yaleba"},
["yle"] = {"Yele"},
["ylg"] = {"Yelogu"},
["yli"] = {"Angguruk Yali"},
["yll"] = {"Yil"},
["ylm"] = {"Limi"},
["yln"] = {"Langnian Buyang"},
["ylo"] = {"Naluo Yi"},
["ylr"] = {"Yalarnnga"},
["ylu"] = {"Aribwaung"},
["yly"] = {"Nyâlayu", "Nyelâyu"},
["ymb"] = {"Yambes"},
["ymc"] = {"Southern Muji"},
["ymd"] = {"Muda"},
["yme"] = {"Yameo"},
["ymg"] = {"Yamongeri"},
["ymh"] = {"Mili"},
["ymi"] = {"Moji"},
["ymk"] = {"Makwe"},
["yml"] = {"Iamalele"},
["ymm"] = {"Maay"},
["ymn"] = {"Yamna", "Sunum"},
["ymo"] = {"Yangum Mon"},
["ymp"] = {"Yamap"},
["ymq"] = {"Qila Muji"},
["ymr"] = {"Malasar"},
["yms"] = {"Mysian"},
["ymx"] = {"Northern Muji"},
["ymz"] = {"Muzi"},
["yna"] = {"Aluo"},
["ynd"] = {"Yandruwandha"},
["yne"] = {"Lang'e"},
["yng"] = {"Yango"},
["ynk"] = {"Naukan Yupik"},
["ynl"] = {"Yangulam"},
["ynn"] = {"Yana"},
["yno"] = {"Yong"},
["ynq"] = {"Yendang"},
["yns"] = {"Yansi"},
["ynu"] = {"Yahuna"},
["yob"] = {"Yoba"},
["yog"] = {"Yogad"},
["yoi"] = {"Yonaguni"},
["yok"] = {"Yokuts"},
["yol"] = {"Yola"},
["yom"] = {"Yombe"},
["yon"] = {"Yongkom"},
["yot"] = {"Yotti"},
["yox"] = {"Yoron"},
["yoy"] = {"Yoy"},
["ypa"] = {"Phala"},
["ypb"] = {"Labo Phowa"},
["ypg"] = {"Phola"},
["yph"] = {"Phupha"},
["ypk"] = {"Yupik languages"},
["ypm"] = {"Phuma"},
["ypn"] = {"Ani Phowa"},
["ypo"] = {"Alo Phola"},
["ypp"] = {"Phupa"},
["ypz"] = {"Phuza"},
["yra"] = {"Yerakai"},
["yrb"] = {"Yareba"},
["yre"] = {"Yaouré"},
["yrk"] = {"Nenets"},
["yrl"] = {"Nhengatu"},
["yrm"] = {"Yirrk-Mel"},
["yrn"] = {"Yerong"},
["yro"] = {"Yaroamë"},
["yrs"] = {"Yarsun"},
["yrw"] = {"Yarawata"},
["yry"] = {"Yarluyandi"},
["ysc"] = {"Yassic"},
["ysd"] = {"Samatao"},
["ysg"] = {"Sonaga"},
["ysl"] = {"Yugoslavian Sign Language"},
["ysm"] = {"Myanmar Sign Language"},
["ysn"] = {"Sani"},
["yso"] = {"Nisi (China)"},
["ysp"] = {"Southern Lolopo"},
["ysr"] = {"Sirenik Yupik"},
["yss"] = {"Yessan-Mayo"},
["ysy"] = {"Sanie"},
["yta"] = {"Talu"},
["ytl"] = {"Tanglang"},
["ytp"] = {"Thopho"},
["ytw"] = {"Yout Wam"},
["yty"] = {"Yatay"},
["yua"] = {"Yucateco", "Yucatec Maya"},
["yub"] = {"Yugambal"},
["yuc"] = {"Yuchi"},
["yud"] = {"Judeo-Tripolitanian Arabic"},
["yue"] = {"Yue Chinese", "Cantonese"},
["yuf"] = {"Havasupai-Walapai-Yavapai"},
["yug"] = {"Yug"},
["yui"] = {"Yurutí"},
["yuj"] = {"Karkar-Yuri"},
["yuk"] = {"Yuki"},
["yul"] = {"Yulu"},
["yum"] = {"Quechan"},
["yun"] = {"Bena (Nigeria)"},
["yup"] = {"Yukpa"},
["yuq"] = {"Yuqui"},
["yur"] = {"Yurok"},
["yut"] = {"Yopno"},
["yuw"] = {"Yau (Morobe Province)"},
["yux"] = {"Southern Yukaghir"},
["yuy"] = {"East Yugur"},
["yuz"] = {"Yuracare"},
["yva"] = {"Yawa"},
["yvt"] = {"Yavitero"},
["ywa"] = {"Kalou"},
["ywg"] = {"Yinhawangka"},
["ywl"] = {"Western Lalu"},
["ywn"] = {"Yawanawa"},
["ywq"] = {"Wuding-Luquan Yi"},
["ywr"] = {"Yawuru"},
["ywt"] = {"Xishanba Lalo", "Central Lalo"},
["ywu"] = {"Wumeng Nasu"},
["yww"] = {"Yawarawarga"},
["yxa"] = {"Mayawali"},
["yxg"] = {"Yagara"},
["yxl"] = {"Yardliyawarra"},
["yxm"] = {"Yinwum"},
["yxu"] = {"Yuyu"},
["yxy"] = {"Yabula Yabula"},
["yyr"] = {"Yir Yoront"},
["yyu"] = {"Yau (Sandaun Province)"},
["yyz"] = {"Ayizi"},
["yzg"] = {"E'ma Buyang"},
["yzk"] = {"Zokhuo"},
["zaa"] = {"Sierra de Juárez Zapotec"},
["zab"] = {"Western Tlacolula Valley Zapotec", "San Juan Guelavía Zapotec"},
["zac"] = {"Ocotlán Zapotec"},
["zad"] = {"Cajonos Zapotec"},
["zae"] = {"Yareni Zapotec"},
["zaf"] = {"Ayoquesco Zapotec"},
["zag"] = {"Zaghawa"},
["zah"] = {"Zangwal"},
["zai"] = {"Isthmus Zapotec"},
["zaj"] = {"Zaramo"},
["zak"] = {"Zanaki"},
["zal"] = {"Zauzou"},
["zam"] = {"Miahuatlán Zapotec"},
["zao"] = {"Ozolotepec Zapotec"},
["zap"] = {"Zapotec"},
["zaq"] = {"Aloápam Zapotec"},
["zar"] = {"Rincón Zapotec"},
["zas"] = {"Santo Domingo Albarradas Zapotec"},
["zat"] = {"Tabaa Zapotec"},
["zau"] = {"Zangskari"},
["zav"] = {"Yatzachi Zapotec"},
["zaw"] = {"Mitla Zapotec"},
["zax"] = {"Xadani Zapotec"},
["zay"] = {"Zayse-Zergulla", "Zaysete"},
["zaz"] = {"Zari"},
["zba"] = {"Balaibalan"},
["zbc"] = {"Central Berawan"},
["zbe"] = {"East Berawan"},
["zbl"] = {"Blissymbols", "Bliss", "Blissymbolics"},
["zbt"] = {"Batui"},
["zbu"] = {"Bu (Bauchi State)"},
["zbw"] = {"West Berawan"},
["zca"] = {"Coatecas Altas Zapotec"},
["zcd"] = {"Las Delicias Zapotec"},
["zch"] = {"Central Hongshuihe Zhuang"},
["zdj"] = {"Ngazidja Comorian"},
["zea"] = {"Zeeuws"},
["zeg"] = {"Zenag"},
["zeh"] = {"Eastern Hongshuihe Zhuang"},
["zen"] = {"Zenaga"},
["zga"] = {"Kinga"},
["zgb"] = {"Guibei Zhuang"},
["zgh"] = {"Standard Moroccan Tamazight"},
["zgm"] = {"Minz Zhuang"},
["zgn"] = {"Guibian Zhuang"},
["zgr"] = {"Magori"},
["zhb"] = {"Zhaba"},
["zhd"] = {"Dai Zhuang"},
["zhi"] = {"Zhire"},
["zhn"] = {"Nong Zhuang"},
["zhw"] = {"Zhoa"},
["zhx"] = {"Chinese (family)"},
["zia"] = {"Zia"},
["zib"] = {"Zimbabwe Sign Language"},
["zik"] = {"Zimakani"},
["zil"] = {"Zialo"},
["zim"] = {"Mesme"},
["zin"] = {"Zinza"},
["ziw"] = {"Zigula"},
["ziz"] = {"Zizilivakan"},
["zka"] = {"Kaimbulawa"},
["zkb"] = {"Koibal"},
["zkd"] = {"Kadu"},
["zkg"] = {"Koguryo"},
["zkh"] = {"Khorezmian"},
["zkk"] = {"Karankawa"},
["zkn"] = {"Kanan"},
["zko"] = {"Kott"},
["zkp"] = {"São Paulo Kaingáng"},
["zkr"] = {"Zakhring"},
["zkt"] = {"Kitan"},
["zku"] = {"Kaurna"},
["zkv"] = {"Krevinian"},
["zkz"] = {"Khazar"},
["zla"] = {"Zula"},
["zle"] = {"East Slavic languages"},
["zlj"] = {"Liujiang Zhuang"},
["zlm"] = {"Malay (individual language)"},
["zln"] = {"Lianshan Zhuang"},
["zlq"] = {"Liuqian Zhuang"},
["zls"] = {"South Slavic languages"},
["zlw"] = {"West Slavic languages"},
["zma"] = {"Manda (Australia)"},
["zmb"] = {"Zimba"},
["zmc"] = {"Margany"},
["zmd"] = {"Maridan"},
["zme"] = {"Mangerr"},
["zmf"] = {"Mfinu"},
["zmg"] = {"Marti Ke"},
["zmh"] = {"Makolkol"},
["zmi"] = {"Negeri Sembilan Malay"},
["zmj"] = {"Maridjabin"},
["zmk"] = {"Mandandanyi"},
["zml"] = {"Matngala"},
["zmm"] = {"Marimanindji", "Marramaninyshi"},
["zmn"] = {"Mbangwe"},
["zmo"] = {"Molo"},
["zmp"] = {"Mpuono"},
["zmq"] = {"Mituku"},
["zmr"] = {"Maranunggu"},
["zms"] = {"Mbesa"},
["zmt"] = {"Maringarr"},
["zmu"] = {"Muruwari"},
["zmv"] = {"Mbariman-Gudhinma"},
["zmw"] = {"Mbo (Democratic Republic of Congo)"},
["zmx"] = {"Bomitaba"},
["zmy"] = {"Mariyedi"},
["zmz"] = {"Mbandja"},
["zna"] = {"Zan Gula"},
["znd"] = {"Zande languages"},
["zne"] = {"Zande (individual language)"},
["zng"] = {"Mang"},
["znk"] = {"Manangkari"},
["zns"] = {"Mangas"},
["zoc"] = {"Copainalá Zoque"},
["zoh"] = {"Chimalapa Zoque"},
["zom"] = {"Zou"},
["zoo"] = {"Asunción Mixtepec Zapotec"},
["zoq"] = {"Tabasco Zoque"},
["zor"] = {"Rayón Zoque"},
["zos"] = {"Francisco León Zoque"},
["zpa"] = {"Lachiguiri Zapotec"},
["zpb"] = {"Yautepec Zapotec"},
["zpc"] = {"Choapan Zapotec"},
["zpd"] = {"Southeastern Ixtlán Zapotec"},
["zpe"] = {"Petapa Zapotec"},
["zpf"] = {"San Pedro Quiatoni Zapotec"},
["zpg"] = {"Guevea De Humboldt Zapotec"},
["zph"] = {"Totomachapan Zapotec"},
["zpi"] = {"Santa María Quiegolani Zapotec"},
["zpj"] = {"Quiavicuzas Zapotec"},
["zpk"] = {"Tlacolulita Zapotec"},
["zpl"] = {"Lachixío Zapotec"},
["zpm"] = {"Mixtepec Zapotec"},
["zpn"] = {"Santa Inés Yatzechi Zapotec"},
["zpo"] = {"Amatlán Zapotec"},
["zpp"] = {"El Alto Zapotec"},
["zpq"] = {"Zoogocho Zapotec"},
["zpr"] = {"Santiago Xanica Zapotec"},
["zps"] = {"Coatlán Zapotec"},
["zpt"] = {"San Vicente Coatlán Zapotec"},
["zpu"] = {"Yalálag Zapotec"},
["zpv"] = {"Chichicapan Zapotec"},
["zpw"] = {"Zaniza Zapotec"},
["zpx"] = {"San Baltazar Loxicha Zapotec"},
["zpy"] = {"Mazaltepec Zapotec"},
["zpz"] = {"Texmelucan Zapotec"},
["zqe"] = {"Qiubei Zhuang"},
["zra"] = {"Kara (Korea)"},
["zrg"] = {"Mirgan"},
["zrn"] = {"Zerenkel"},
["zro"] = {"Záparo"},
["zrp"] = {"Zarphatic"},
["zrs"] = {"Mairasi"},
["zsa"] = {"Sarasira"},
["zsk"] = {"Kaskean"},
["zsl"] = {"Zambian Sign Language"},
["zsm"] = {"Standard Malay"},
["zsr"] = {"Southern Rincon Zapotec"},
["zsu"] = {"Sukurum"},
["zte"] = {"Elotepec Zapotec"},
["ztg"] = {"Xanaguía Zapotec"},
["ztl"] = {"Lapaguía-Guivini Zapotec"},
["ztm"] = {"San Agustín Mixtepec Zapotec"},
["ztn"] = {"Santa Catarina Albarradas Zapotec"},
["ztp"] = {"Loxicha Zapotec"},
["ztq"] = {"Quioquitani-Quierí Zapotec"},
["zts"] = {"Tilquiapan Zapotec"},
["ztt"] = {"Tejalapan Zapotec"},
["ztu"] = {"Güilá Zapotec"},
["ztx"] = {"Zaachila Zapotec"},
["zty"] = {"Yatee Zapotec"},
["zua"] = {"Zeem"},
["zuh"] = {"Tokano"},
["zum"] = {"Kumzari"},
["zun"] = {"Zuni"},
["zuy"] = {"Zumaya"},
["zwa"] = {"Zay"},
["zxx"] = {"No linguistic content", "Not applicable"},
["zyb"] = {"Yongbei Zhuang"},
["zyg"] = {"Yang Zhuang"},
["zyj"] = {"Youjiang Zhuang"},
["zyn"] = {"Yongnan Zhuang"},
["zyp"] = {"Zyphe Chin"},
["zza"] = {"Zaza", "Dimili", "Dimli (macrolanguage)", "Kirdki", "Kirmanjki (macrolanguage)", "Zazaki"},
["zzj"] = {"Zuojiang Zhuang"}
}
local deprecated = {
["in"] = {"Indonesian"},
["iw"] = {"Hebrew"},
["ji"] = {"Yiddish"},
["jw"] = {"Javanese"},
["mo"] = {"Moldavian", "Moldovan"},
["aam"] = {"Aramanik"},
["adp"] = {"Adap"},
["agp"] = {"Paranan"},
["ais"] = {"Nataoran Amis"},
["ajt"] = {"Judeo-Tunisian Arabic"},
["aoh"] = {"Arma"},
["asd"] = {"Asas"},
["aue"] = {"ǂKxʼauǁʼein"},
["ayx"] = {"Ayi (China)"},
["ayy"] = {"Tayabas Ayta"},
["baz"] = {"Tunen"},
["bbz"] = {"Babalia Creole Arabic"},
["bgm"] = {"Baga Mboteni"},
["bhk"] = {"Albay Bicolano"},
["bic"] = {"Bikaru"},
["bij"] = {"Vaghat-Ya-Bijim-Legeri"},
["bjd"] = {"Bandjigali"},
["bjq"] = {"Southern Betsimisaraka Malagasy"},
["bkb"] = {"Finallig"},
["blg"] = {"Balau"},
["bmy"] = {"Bemba (Democratic Republic of Congo)"},
["bpb"] = {"Barbacoas"},
["btb"] = {"Beti (Cameroon)"},
["btl"] = {"Bhatola"},
["bxx"] = {"Borna (Democratic Republic of Congo)"},
["byy"] = {"Buya"},
["cbe"] = {"Chipiajes"},
["cbh"] = {"Cagua"},
["cca"] = {"Cauca"},
["ccq"] = {"Chaungtha"},
["cdg"] = {"Chamari"},
["cjr"] = {"Chorotega"},
["cka"] = {"Khumi Awa Chin"},
["cmk"] = {"Chimakum"},
["coy"] = {"Coyaima"},
["cqu"] = {"Chilean Quechua"},
["cug"] = {"Chungmboko", "Cung"},
["cum"] = {"Cumeral"},
["daf"] = {"Dan"},
["dap"] = {"Nisi (India)"},
["dgu"] = {"Degaru"},
["dha"] = {"Dhanwar (India)"},
["dit"] = {"Dirari"},
["djl"] = {"Djiwarli"},
["dkl"] = {"Kolum So Dogon"},
["drh"] = {"Darkhat"},
["drr"] = {"Dororo"},
["drw"] = {"Darwazi"},
["dud"] = {"Hun-Saare"},
["duj"] = {"Dhuwal"},
["dwl"] = {"Walo Kumbe Dogon"},
["dzd"] = {"Daza"},
["ekc"] = {"Eastern Karnic"},
["elp"] = {"Elpaputih"},
["emo"] = {"Emok"},
["gav"] = {"Gabutamon"},
["gbc"] = {"Garawa"},
["gfx"] = {"Mangetti Dune ǃXung"},
["ggn"] = {"Eastern Gurung"},
["ggo"] = {"Southern Gondi"},
["ggr"] = {"Aghu Tharnggalu"},
["gio"] = {"Gelao"},
["gji"] = {"Geji"},
["gli"] = {"Guliguli"},
["gti"] = {"Gbati-ri"},
["guv"] = {"Gey"},
["hrr"] = {"Horuru"},
["iap"] = {"Iapama"},
["ibi"] = {"Ibilo"},
["ill"] = {"Iranun"},
["ilw"] = {"Talur"},
["ime"] = {"Imeraguen"},
["izi"] = {"Izi-Ezaa-Ikwo-Mgbo"},
["jar"] = {"Jarawa (Nigeria)"},
["jeg"] = {"Jeng"},
["kbf"] = {"Kakauhua"},
["kdv"] = {"Kado"},
["kgc"] = {"Kasseng"},
["kgd"] = {"Kataang"},
["kgh"] = {"Upper Tanudan Kalinga"},
["kjf"] = {"Khalaj [Indo-Iranian]"},
["koj"] = {"Sara Dunjo"},
["kox"] = {"Coxima"},
["kpp"] = {"Paku Karen"},
["krm"] = {"Krim"},
["ktr"] = {"Kota Marudu Tinagas"},
["kvs"] = {"Kunggara"},
["kwq"] = {"Kwak"},
["kxe"] = {"Kakihum"},
["kxl"] = {"Nepali Kurux"},
["kxu"] = {"Kui (India)"},
["kzh"] = {"Kenuzi-Dongola"},
["kzj"] = {"Coastal Kadazan"},
["kzt"] = {"Tambunan Dusun"},
["lak"] = {"Laka (Nigeria)"},
["lba"] = {"Lui"},
["leg"] = {"Lengua"},
["lii"] = {"Lingkhim"},
["llo"] = {"Khlor"},
["lmm"] = {"Lamam"},
["lmz"] = {"Lumbee"},
["lno"] = {"Lango (South Sudan)"},
["lsg"] = {"Lyons Sign Language"},
["meg"] = {"Mea"},
["mgx"] = {"Omati"},
["mhh"] = {"Maskoy Pidgin"},
["mja"] = {"Mahei"},
["mld"] = {"Malakhel"},
["mnt"] = {"Maykulan"},
["mof"] = {"Mohegan-Montauk-Narragansett"},
["mst"] = {"Cataelano Mandaya"},
["mvm"] = {"Muya"},
["mwd"] = {"Mudbura"},
["mwj"] = {"Maligo"},
["mwx"] = {"Mediak"},
["mwy"] = {"Mosiro"},
["myd"] = {"Maramba"},
["myi"] = {"Mina (India)"},
["myq"] = {"Forest Maninka"},
["myt"] = {"Sangab Mandaya"},
["nad"] = {"Nijadali"},
["nbf"] = {"Naxi"},
["nbx"] = {"Ngura"},
["ncp"] = {"Ndaktup"},
["ngo"] = {"Ngoni"},
["nln"] = {"Durango Nahuatl"},
["nlr"] = {"Ngarla"},
["nns"] = {"Ningye"},
["nnx"] = {"Ngong"},
["noo"] = {"Nootka"},
["nts"] = {"Natagaimas"},
["nxu"] = {"Narau"},
["ome"] = {"Omejes"},
["oun"] = {"ǃOǃung"},
["pat"] = {"Papitalai"},
["pbz"] = {"Palu"},
["pcr"] = {"Panang"},
["pgy"] = {"Pongyong"},
["pii"] = {"Pini"},
["plp"] = {"Palpa"},
["pmc"] = {"Palumata"},
["pmu"] = {"Mirpur Panjabi"},
["pod"] = {"Ponares"},
["ppa"] = {"Pao"},
["ppr"] = {"Piru"},
["prb"] = {"Lua'"},
["pry"] = {"Pray 3"},
["puk"] = {"Pu Ko"},
["puz"] = {"Purum Naga"},
["rie"] = {"Rien"},
["rmr"] = {"Caló"},
["rna"] = {"Runa"},
["rsi"] = {"Rennellese Sign Language"},
["sap"] = {"Sanapaná"},
["sca"] = {"Sansu"},
["sdm"] = {"Semandang"},
["sgl"] = {"Sanglechi-Ishkashimi"},
["sgo"] = {"Songa"},
["skk"] = {"Sok"},
["smd"] = {"Sama"},
["snb"] = {"Sebuyau"},
["snh"] = {"Shinabo"},
["sul"] = {"Surigaonon"},
["sum"] = {"Sumo-Mayangna"},
["svr"] = {"Savara"},
["tbb"] = {"Tapeba"},
["tdu"] = {"Tempasuk Dusun"},
["tgg"] = {"Tangga"},
["thc"] = {"Tai Hang Tong"},
["thw"] = {"Thudam"},
["thx"] = {"The"},
["tid"] = {"Tidong"},
["tie"] = {"Tingal"},
["tkk"] = {"Takpa"},
["tlw"] = {"South Wemale"},
["tmp"] = {"Tai Mène"},
["tne"] = {"Tinoc Kallahan"},
["tnf"] = {"Tangshewi"},
["toe"] = {"Tomedes"},
["tsf"] = {"Southwestern Tamang"},
["unp"] = {"Worora"},
["uok"] = {"Uokha"},
["uun"] = {"Kulon-Pazeh"},
["vki"] = {"Ija-Zuba"},
["wgw"] = {"Wagawaga"},
["wit"] = {"Wintu"},
["wiw"] = {"Wirangu"},
["wra"] = {"Warapu"},
["wrd"] = {"Warduji"},
["wya"] = {"Wyandot"},
["xba"] = {"Kamba (Brazil)"},
["xbx"] = {"Kabixí"},
["xia"] = {"Xiandao"},
["xip"] = {"Xipináwa"},
["xkh"] = {"Karahawyana"},
["xrq"] = {"Karranga"},
["xtz"] = {"Tasmanian"},
["ybd"] = {"Yangbye"},
["yds"] = {"Yiddish Sign Language"},
["yen"] = {"Yendang"},
["yiy"] = {"Yir Yoront"},
["yma"] = {"Yamphe"},
["ymt"] = {"Mator-Taygi-Karagas"},
["ynh"] = {"Yangho"},
["yos"] = {"Yos"},
["yri"] = {"Yarí"},
["yuu"] = {"Yugh"},
["zir"] = {"Ziriya"}
}
return {
active = active,
deprecated = deprecated,
}
1cfc8321a5d507256a5a1115e89233d70355779c
Module:Language/data/iana scripts
828
42
79
2024-01-03T21:19:57Z
Laggardson
2
Created page with "-- File-Date: 2022-03-02 return { ["Adlm"] = {"Adlam"}, ["Afak"] = {"Afaka"}, ["Aghb"] = {"Caucasian Albanian"}, ["Ahom"] = {"Ahom", "Tai Ahom"}, ["Arab"] = {"Arabic"}, ["Aran"] = {"Arabic (Nastaliq variant)"}, ["Armi"] = {"Imperial Aramaic"}, ["Armn"] = {"Armenian"}, ["Avst"] = {"Avestan"}, ["Bali"] = {"Balinese"}, ["Bamu"] = {"Bamum"}, ["Bass"] = {"Bassa Vah"}, ["Batk"] = {"Batak"}, ["Beng"] = {"Bengali", "Bangla"}, ["Bhks"] = {"Bhaiksuki"}, ["Blis"] =..."
Scribunto
text/plain
-- File-Date: 2022-03-02
return {
["Adlm"] = {"Adlam"},
["Afak"] = {"Afaka"},
["Aghb"] = {"Caucasian Albanian"},
["Ahom"] = {"Ahom", "Tai Ahom"},
["Arab"] = {"Arabic"},
["Aran"] = {"Arabic (Nastaliq variant)"},
["Armi"] = {"Imperial Aramaic"},
["Armn"] = {"Armenian"},
["Avst"] = {"Avestan"},
["Bali"] = {"Balinese"},
["Bamu"] = {"Bamum"},
["Bass"] = {"Bassa Vah"},
["Batk"] = {"Batak"},
["Beng"] = {"Bengali", "Bangla"},
["Bhks"] = {"Bhaiksuki"},
["Blis"] = {"Blissymbols"},
["Bopo"] = {"Bopomofo"},
["Brah"] = {"Brahmi"},
["Brai"] = {"Braille"},
["Bugi"] = {"Buginese"},
["Buhd"] = {"Buhid"},
["Cakm"] = {"Chakma"},
["Cans"] = {"Unified Canadian Aboriginal Syllabics"},
["Cari"] = {"Carian"},
["Cham"] = {"Cham"},
["Cher"] = {"Cherokee"},
["Chrs"] = {"Chorasmian"},
["Cirt"] = {"Cirth"},
["Copt"] = {"Coptic"},
["Cpmn"] = {"Cypro-Minoan"},
["Cprt"] = {"Cypriot syllabary"},
["Cyrl"] = {"Cyrillic"},
["Cyrs"] = {"Cyrillic (Old Church Slavonic variant)"},
["Deva"] = {"Devanagari", "Nagari"},
["Diak"] = {"Dives Akuru"},
["Dogr"] = {"Dogra"},
["Dsrt"] = {"Deseret", "Mormon"},
["Dupl"] = {"Duployan shorthand", "Duployan stenography"},
["Egyd"] = {"Egyptian demotic"},
["Egyh"] = {"Egyptian hieratic"},
["Egyp"] = {"Egyptian hieroglyphs"},
["Elba"] = {"Elbasan"},
["Elym"] = {"Elymaic"},
["Ethi"] = {"Ethiopic", "Geʻez", "Ge'ez"},
["Geok"] = {"Khutsuri (Asomtavruli and Nuskhuri)"},
["Geor"] = {"Georgian (Mkhedruli and Mtavruli)"},
["Glag"] = {"Glagolitic"},
["Gong"] = {"Gunjala Gondi"},
["Gonm"] = {"Masaram Gondi"},
["Goth"] = {"Gothic"},
["Gran"] = {"Grantha"},
["Grek"] = {"Greek"},
["Gujr"] = {"Gujarati"},
["Guru"] = {"Gurmukhi"},
["Hanb"] = {"Han with Bopomofo (alias for Han + Bopomofo)"},
["Hang"] = {"Hangul", "Hangŭl", "Hangeul"},
["Hani"] = {"Han", "Hanzi", "Kanji", "Hanja"},
["Hano"] = {"Hanunoo", "Hanunóo"},
["Hans"] = {"Han (Simplified variant)"},
["Hant"] = {"Han (Traditional variant)"},
["Hatr"] = {"Hatran"},
["Hebr"] = {"Hebrew"},
["Hira"] = {"Hiragana"},
["Hluw"] = {"Anatolian Hieroglyphs", "Luwian Hieroglyphs", "Hittite Hieroglyphs"},
["Hmng"] = {"Pahawh Hmong"},
["Hmnp"] = {"Nyiakeng Puachue Hmong"},
["Hrkt"] = {"Japanese syllabaries (alias for Hiragana + Katakana)"},
["Hung"] = {"Old Hungarian", "Hungarian Runic"},
["Inds"] = {"Indus", "Harappan"},
["Ital"] = {"Old Italic (Etruscan, Oscan, etc.)"},
["Jamo"] = {"Jamo (alias for Jamo subset of Hangul)"},
["Java"] = {"Javanese"},
["Jpan"] = {"Japanese (alias for Han + Hiragana + Katakana)"},
["Jurc"] = {"Jurchen"},
["Kali"] = {"Kayah Li"},
["Kana"] = {"Katakana"},
["Kawi"] = {"Kawi"},
["Khar"] = {"Kharoshthi"},
["Khmr"] = {"Khmer"},
["Khoj"] = {"Khojki"},
["Kitl"] = {"Khitan large script"},
["Kits"] = {"Khitan small script"},
["Knda"] = {"Kannada"},
["Kore"] = {"Korean (alias for Hangul + Han)"},
["Kpel"] = {"Kpelle"},
["Kthi"] = {"Kaithi"},
["Lana"] = {"Tai Tham", "Lanna"},
["Laoo"] = {"Lao"},
["Latf"] = {"Latin (Fraktur variant)"},
["Latg"] = {"Latin (Gaelic variant)"},
["Latn"] = {"Latin"},
["Leke"] = {"Leke"},
["Lepc"] = {"Lepcha", "Róng"},
["Limb"] = {"Limbu"},
["Lina"] = {"Linear A"},
["Linb"] = {"Linear B"},
["Lisu"] = {"Lisu", "Fraser"},
["Loma"] = {"Loma"},
["Lyci"] = {"Lycian"},
["Lydi"] = {"Lydian"},
["Mahj"] = {"Mahajani"},
["Maka"] = {"Makasar"},
["Mand"] = {"Mandaic", "Mandaean"},
["Mani"] = {"Manichaean"},
["Marc"] = {"Marchen"},
["Maya"] = {"Mayan hieroglyphs"},
["Medf"] = {"Medefaidrin", "Oberi Okaime", "Oberi Ɔkaimɛ"},
["Mend"] = {"Mende Kikakui"},
["Merc"] = {"Meroitic Cursive"},
["Mero"] = {"Meroitic Hieroglyphs"},
["Mlym"] = {"Malayalam"},
["Modi"] = {"Modi", "Moḍī"},
["Mong"] = {"Mongolian"},
["Moon"] = {"Moon", "Moon code", "Moon script", "Moon type"},
["Mroo"] = {"Mro", "Mru"},
["Mtei"] = {"Meitei Mayek", "Meithei", "Meetei"},
["Mult"] = {"Multani"},
["Mymr"] = {"Myanmar", "Burmese"},
["Nagm"] = {"Nag Mundari"},
["Nand"] = {"Nandinagari"},
["Narb"] = {"Old North Arabian", "Ancient North Arabian"},
["Nbat"] = {"Nabataean"},
["Newa"] = {"Newa", "Newar", "Newari", "Nepāla lipi"},
["Nkdb"] = {"Naxi Dongba", "na²¹ɕi³³ to³³ba²¹", "Nakhi Tomba"},
["Nkgb"] = {"Naxi Geba", "na²¹ɕi³³ gʌ²¹ba²¹", "'Na-'Khi ²Ggŏ-¹baw", "Nakhi Geba"},
["Nkoo"] = {"N’Ko", "N'Ko"},
["Nshu"] = {"Nüshu"},
["Ogam"] = {"Ogham"},
["Olck"] = {"Ol Chiki", "Ol Cemet'", "Ol", "Santali"},
["Orkh"] = {"Old Turkic", "Orkhon Runic"},
["Orya"] = {"Oriya", "Odia"},
["Osge"] = {"Osage"},
["Osma"] = {"Osmanya"},
["Ougr"] = {"Old Uyghur"},
["Palm"] = {"Palmyrene"},
["Pauc"] = {"Pau Cin Hau"},
["Pcun"] = {"Proto-Cuneiform"},
["Pelm"] = {"Proto-Elamite"},
["Perm"] = {"Old Permic"},
["Phag"] = {"Phags-pa"},
["Phli"] = {"Inscriptional Pahlavi"},
["Phlp"] = {"Psalter Pahlavi"},
["Phlv"] = {"Book Pahlavi"},
["Phnx"] = {"Phoenician"},
["Piqd"] = {"Klingon (KLI pIqaD)"},
["Plrd"] = {"Miao", "Pollard"},
["Prti"] = {"Inscriptional Parthian"},
["Psin"] = {"Proto-Sinaitic"},
["Ranj"] = {"Ranjana"},
["Rjng"] = {"Rejang", "Redjang", "Kaganga"},
["Rohg"] = {"Hanifi Rohingya"},
["Roro"] = {"Rongorongo"},
["Runr"] = {"Runic"},
["Samr"] = {"Samaritan"},
["Sara"] = {"Sarati"},
["Sarb"] = {"Old South Arabian"},
["Saur"] = {"Saurashtra"},
["Sgnw"] = {"SignWriting"},
["Shaw"] = {"Shavian", "Shaw"},
["Shrd"] = {"Sharada", "Śāradā"},
["Shui"] = {"Shuishu"},
["Sidd"] = {"Siddham", "Siddhaṃ", "Siddhamātṛkā"},
["Sind"] = {"Khudawadi", "Sindhi"},
["Sinh"] = {"Sinhala"},
["Sogd"] = {"Sogdian"},
["Sogo"] = {"Old Sogdian"},
["Sora"] = {"Sora Sompeng"},
["Soyo"] = {"Soyombo"},
["Sund"] = {"Sundanese"},
["Sunu"] = {"Sunuwar"},
["Sylo"] = {"Syloti Nagri"},
["Syrc"] = {"Syriac"},
["Syre"] = {"Syriac (Estrangelo variant)"},
["Syrj"] = {"Syriac (Western variant)"},
["Syrn"] = {"Syriac (Eastern variant)"},
["Tagb"] = {"Tagbanwa"},
["Takr"] = {"Takri", "Ṭākrī", "Ṭāṅkrī"},
["Tale"] = {"Tai Le"},
["Talu"] = {"New Tai Lue"},
["Taml"] = {"Tamil"},
["Tang"] = {"Tangut"},
["Tavt"] = {"Tai Viet"},
["Telu"] = {"Telugu"},
["Teng"] = {"Tengwar"},
["Tfng"] = {"Tifinagh", "Berber"},
["Tglg"] = {"Tagalog", "Baybayin", "Alibata"},
["Thaa"] = {"Thaana"},
["Thai"] = {"Thai"},
["Tibt"] = {"Tibetan"},
["Tirh"] = {"Tirhuta"},
["Tnsa"] = {"Tangsa"},
["Toto"] = {"Toto"},
["Ugar"] = {"Ugaritic"},
["Vaii"] = {"Vai"},
["Visp"] = {"Visible Speech"},
["Vith"] = {"Vithkuqi"},
["Wara"] = {"Warang Citi", "Varang Kshiti"},
["Wcho"] = {"Wancho"},
["Wole"] = {"Woleai"},
["Xpeo"] = {"Old Persian"},
["Xsux"] = {"Sumero-Akkadian cuneiform"},
["Yezi"] = {"Yezidi"},
["Yiii"] = {"Yi"},
["Zanb"] = {"Zanabazar Square", "Zanabazarin Dörböljin Useg", "Xewtee Dörböljin Bicig", "Horizontal Square Script"},
["Zinh"] = {"Code for inherited script"},
["Zmth"] = {"Mathematical notation"},
["Zsye"] = {"Symbols (Emoji variant)"},
["Zsym"] = {"Symbols"},
["Zxxx"] = {"Code for unwritten documents"},
["Zyyy"] = {"Code for undetermined script"},
["Zzzz"] = {"Code for uncoded script"}
}
676756cbab249d1b372d05ff9ab48486764e33e9
Module:Language/data/iana regions
828
43
80
2024-01-03T21:21:06Z
Laggardson
2
Created page with "-- File-Date: 2022-03-02 return { ["AC"] = {"Ascension Island"}, ["AD"] = {"Andorra"}, ["AE"] = {"United Arab Emirates"}, ["AF"] = {"Afghanistan"}, ["AG"] = {"Antigua and Barbuda"}, ["AI"] = {"Anguilla"}, ["AL"] = {"Albania"}, ["AM"] = {"Armenia"}, ["AO"] = {"Angola"}, ["AQ"] = {"Antarctica"}, ["AR"] = {"Argentina"}, ["AS"] = {"American Samoa"}, ["AT"] = {"Austria"}, ["AU"] = {"Australia"}, ["AW"] = {"Aruba"}, ["AX"] = {"Åland Islands"}, ["AZ"] = {"Azer..."
Scribunto
text/plain
-- File-Date: 2022-03-02
return {
["AC"] = {"Ascension Island"},
["AD"] = {"Andorra"},
["AE"] = {"United Arab Emirates"},
["AF"] = {"Afghanistan"},
["AG"] = {"Antigua and Barbuda"},
["AI"] = {"Anguilla"},
["AL"] = {"Albania"},
["AM"] = {"Armenia"},
["AO"] = {"Angola"},
["AQ"] = {"Antarctica"},
["AR"] = {"Argentina"},
["AS"] = {"American Samoa"},
["AT"] = {"Austria"},
["AU"] = {"Australia"},
["AW"] = {"Aruba"},
["AX"] = {"Åland Islands"},
["AZ"] = {"Azerbaijan"},
["BA"] = {"Bosnia and Herzegovina"},
["BB"] = {"Barbados"},
["BD"] = {"Bangladesh"},
["BE"] = {"Belgium"},
["BF"] = {"Burkina Faso"},
["BG"] = {"Bulgaria"},
["BH"] = {"Bahrain"},
["BI"] = {"Burundi"},
["BJ"] = {"Benin"},
["BL"] = {"Saint Barthélemy"},
["BM"] = {"Bermuda"},
["BN"] = {"Brunei Darussalam"},
["BO"] = {"Bolivia"},
["BQ"] = {"Bonaire, Sint Eustatius and Saba"},
["BR"] = {"Brazil"},
["BS"] = {"Bahamas"},
["BT"] = {"Bhutan"},
["BV"] = {"Bouvet Island"},
["BW"] = {"Botswana"},
["BY"] = {"Belarus"},
["BZ"] = {"Belize"},
["CA"] = {"Canada"},
["CC"] = {"Cocos (Keeling) Islands"},
["CD"] = {"The Democratic Republic of the Congo"},
["CF"] = {"Central African Republic"},
["CG"] = {"Congo"},
["CH"] = {"Switzerland"},
["CI"] = {"Côte d'Ivoire"},
["CK"] = {"Cook Islands"},
["CL"] = {"Chile"},
["CM"] = {"Cameroon"},
["CN"] = {"China"},
["CO"] = {"Colombia"},
["CP"] = {"Clipperton Island"},
["CR"] = {"Costa Rica"},
["CU"] = {"Cuba"},
["CV"] = {"Cabo Verde", "Cape Verde"},
["CW"] = {"Curaçao"},
["CX"] = {"Christmas Island"},
["CY"] = {"Cyprus"},
["CZ"] = {"Czechia", "Czech Republic"},
["DE"] = {"Germany"},
["DG"] = {"Diego Garcia"},
["DJ"] = {"Djibouti"},
["DK"] = {"Denmark"},
["DM"] = {"Dominica"},
["DO"] = {"Dominican Republic"},
["DZ"] = {"Algeria"},
["EA"] = {"Ceuta, Melilla"},
["EC"] = {"Ecuador"},
["EE"] = {"Estonia"},
["EG"] = {"Egypt"},
["EH"] = {"Western Sahara"},
["ER"] = {"Eritrea"},
["ES"] = {"Spain"},
["ET"] = {"Ethiopia"},
["EU"] = {"European Union"},
["EZ"] = {"Eurozone"},
["FI"] = {"Finland"},
["FJ"] = {"Fiji"},
["FK"] = {"Falkland Islands (Malvinas)"},
["FM"] = {"Federated States of Micronesia"},
["FO"] = {"Faroe Islands"},
["FR"] = {"France"},
["GA"] = {"Gabon"},
["GB"] = {"United Kingdom"},
["GD"] = {"Grenada"},
["GE"] = {"Georgia"},
["GF"] = {"French Guiana"},
["GG"] = {"Guernsey"},
["GH"] = {"Ghana"},
["GI"] = {"Gibraltar"},
["GL"] = {"Greenland"},
["GM"] = {"Gambia"},
["GN"] = {"Guinea"},
["GP"] = {"Guadeloupe"},
["GQ"] = {"Equatorial Guinea"},
["GR"] = {"Greece"},
["GS"] = {"South Georgia and the South Sandwich Islands"},
["GT"] = {"Guatemala"},
["GU"] = {"Guam"},
["GW"] = {"Guinea-Bissau"},
["GY"] = {"Guyana"},
["HK"] = {"Hong Kong"},
["HM"] = {"Heard Island and McDonald Islands"},
["HN"] = {"Honduras"},
["HR"] = {"Croatia"},
["HT"] = {"Haiti"},
["HU"] = {"Hungary"},
["IC"] = {"Canary Islands"},
["ID"] = {"Indonesia"},
["IE"] = {"Ireland"},
["IL"] = {"Israel"},
["IM"] = {"Isle of Man"},
["IN"] = {"India"},
["IO"] = {"British Indian Ocean Territory"},
["IQ"] = {"Iraq"},
["IR"] = {"Islamic Republic of Iran"},
["IS"] = {"Iceland"},
["IT"] = {"Italy"},
["JE"] = {"Jersey"},
["JM"] = {"Jamaica"},
["JO"] = {"Jordan"},
["JP"] = {"Japan"},
["KE"] = {"Kenya"},
["KG"] = {"Kyrgyzstan"},
["KH"] = {"Cambodia"},
["KI"] = {"Kiribati"},
["KM"] = {"Comoros"},
["KN"] = {"Saint Kitts and Nevis"},
["KP"] = {"Democratic People's Republic of Korea"},
["KR"] = {"Republic of Korea"},
["KW"] = {"Kuwait"},
["KY"] = {"Cayman Islands"},
["KZ"] = {"Kazakhstan"},
["LA"] = {"Lao People's Democratic Republic"},
["LB"] = {"Lebanon"},
["LC"] = {"Saint Lucia"},
["LI"] = {"Liechtenstein"},
["LK"] = {"Sri Lanka"},
["LR"] = {"Liberia"},
["LS"] = {"Lesotho"},
["LT"] = {"Lithuania"},
["LU"] = {"Luxembourg"},
["LV"] = {"Latvia"},
["LY"] = {"Libya"},
["MA"] = {"Morocco"},
["MC"] = {"Monaco"},
["MD"] = {"Moldova"},
["ME"] = {"Montenegro"},
["MF"] = {"Saint Martin (French part)"},
["MG"] = {"Madagascar"},
["MH"] = {"Marshall Islands"},
["MK"] = {"North Macedonia"},
["ML"] = {"Mali"},
["MM"] = {"Myanmar"},
["MN"] = {"Mongolia"},
["MO"] = {"Macao"},
["MP"] = {"Northern Mariana Islands"},
["MQ"] = {"Martinique"},
["MR"] = {"Mauritania"},
["MS"] = {"Montserrat"},
["MT"] = {"Malta"},
["MU"] = {"Mauritius"},
["MV"] = {"Maldives"},
["MW"] = {"Malawi"},
["MX"] = {"Mexico"},
["MY"] = {"Malaysia"},
["MZ"] = {"Mozambique"},
["NA"] = {"Namibia"},
["NC"] = {"New Caledonia"},
["NE"] = {"Niger"},
["NF"] = {"Norfolk Island"},
["NG"] = {"Nigeria"},
["NI"] = {"Nicaragua"},
["NL"] = {"Netherlands"},
["NO"] = {"Norway"},
["NP"] = {"Nepal"},
["NR"] = {"Nauru"},
["NU"] = {"Niue"},
["NZ"] = {"New Zealand"},
["OM"] = {"Oman"},
["PA"] = {"Panama"},
["PE"] = {"Peru"},
["PF"] = {"French Polynesia"},
["PG"] = {"Papua New Guinea"},
["PH"] = {"Philippines"},
["PK"] = {"Pakistan"},
["PL"] = {"Poland"},
["PM"] = {"Saint Pierre and Miquelon"},
["PN"] = {"Pitcairn"},
["PR"] = {"Puerto Rico"},
["PS"] = {"State of Palestine"},
["PT"] = {"Portugal"},
["PW"] = {"Palau"},
["PY"] = {"Paraguay"},
["QA"] = {"Qatar"},
["RE"] = {"Réunion"},
["RO"] = {"Romania"},
["RS"] = {"Serbia"},
["RU"] = {"Russian Federation"},
["RW"] = {"Rwanda"},
["SA"] = {"Saudi Arabia"},
["SB"] = {"Solomon Islands"},
["SC"] = {"Seychelles"},
["SD"] = {"Sudan"},
["SE"] = {"Sweden"},
["SG"] = {"Singapore"},
["SH"] = {"Saint Helena, Ascension and Tristan da Cunha"},
["SI"] = {"Slovenia"},
["SJ"] = {"Svalbard and Jan Mayen"},
["SK"] = {"Slovakia"},
["SL"] = {"Sierra Leone"},
["SM"] = {"San Marino"},
["SN"] = {"Senegal"},
["SO"] = {"Somalia"},
["SR"] = {"Suriname"},
["SS"] = {"South Sudan"},
["ST"] = {"Sao Tome and Principe"},
["SV"] = {"El Salvador"},
["SX"] = {"Sint Maarten (Dutch part)"},
["SY"] = {"Syrian Arab Republic"},
["SZ"] = {"Eswatini", "eSwatini", "Swaziland"},
["TA"] = {"Tristan da Cunha"},
["TC"] = {"Turks and Caicos Islands"},
["TD"] = {"Chad"},
["TF"] = {"French Southern Territories"},
["TG"] = {"Togo"},
["TH"] = {"Thailand"},
["TJ"] = {"Tajikistan"},
["TK"] = {"Tokelau"},
["TL"] = {"Timor-Leste"},
["TM"] = {"Turkmenistan"},
["TN"] = {"Tunisia"},
["TO"] = {"Tonga"},
["TR"] = {"Turkey"},
["TT"] = {"Trinidad and Tobago"},
["TV"] = {"Tuvalu"},
["TW"] = {"Taiwan, Province of China"},
["TZ"] = {"United Republic of Tanzania"},
["UA"] = {"Ukraine"},
["UG"] = {"Uganda"},
["UM"] = {"United States Minor Outlying Islands"},
["UN"] = {"United Nations"},
["US"] = {"United States"},
["UY"] = {"Uruguay"},
["UZ"] = {"Uzbekistan"},
["VA"] = {"Holy See (Vatican City State)"},
["VC"] = {"Saint Vincent and the Grenadines"},
["VE"] = {"Venezuela"},
["VG"] = {"British Virgin Islands"},
["VI"] = {"U.S. Virgin Islands"},
["VN"] = {"Viet Nam"},
["VU"] = {"Vanuatu"},
["WF"] = {"Wallis and Futuna"},
["WS"] = {"Samoa"},
["YE"] = {"Yemen"},
["YT"] = {"Mayotte"},
["ZA"] = {"South Africa"},
["ZM"] = {"Zambia"},
["ZW"] = {"Zimbabwe"},
["001"] = {"World"},
["002"] = {"Africa"},
["003"] = {"North America"},
["005"] = {"South America"},
["009"] = {"Oceania"},
["011"] = {"Western Africa"},
["013"] = {"Central America"},
["014"] = {"Eastern Africa"},
["015"] = {"Northern Africa"},
["017"] = {"Middle Africa"},
["018"] = {"Southern Africa"},
["019"] = {"Americas"},
["021"] = {"Northern America"},
["029"] = {"Caribbean"},
["030"] = {"Eastern Asia"},
["034"] = {"Southern Asia"},
["035"] = {"South-Eastern Asia"},
["039"] = {"Southern Europe"},
["053"] = {"Australia and New Zealand"},
["054"] = {"Melanesia"},
["057"] = {"Micronesia"},
["061"] = {"Polynesia"},
["142"] = {"Asia"},
["143"] = {"Central Asia"},
["145"] = {"Western Asia"},
["150"] = {"Europe"},
["151"] = {"Eastern Europe"},
["154"] = {"Northern Europe"},
["155"] = {"Western Europe"},
["202"] = {"Sub-Saharan Africa"},
["419"] = {"Latin America and the Caribbean"}
}
0760a4c619ecc3b3f48799f6fe005e954b762dd2
Module:Language/data/iana variants
828
44
81
2024-01-03T21:22:14Z
Laggardson
2
Created page with "-- File-Date: 2022-03-02 return { ["1606nict"] = { ["descriptions"] = {"Late Middle French (to 1606)"}, ["prefixes"] = {"frm"}, }, ["1694acad"] = { ["descriptions"] = {"Early Modern French"}, ["prefixes"] = {"fr"}, }, ["1901"] = { ["descriptions"] = {"Traditional German orthography"}, ["prefixes"] = {"de"}, }, ["1959acad"] = { ["descriptions"] = {"\"Academic\" (\"governmental\") variant of Belarusian as codified in 1959"}, ["prefixes"] = {"be"},..."
Scribunto
text/plain
-- File-Date: 2022-03-02
return {
["1606nict"] = {
["descriptions"] = {"Late Middle French (to 1606)"},
["prefixes"] = {"frm"},
},
["1694acad"] = {
["descriptions"] = {"Early Modern French"},
["prefixes"] = {"fr"},
},
["1901"] = {
["descriptions"] = {"Traditional German orthography"},
["prefixes"] = {"de"},
},
["1959acad"] = {
["descriptions"] = {"\"Academic\" (\"governmental\") variant of Belarusian as codified in 1959"},
["prefixes"] = {"be"},
},
["1994"] = {
["descriptions"] = {"Standardized Resian orthography"},
["prefixes"] = {"sl-rozaj", "sl-rozaj-biske", "sl-rozaj-njiva", "sl-rozaj-osojs", "sl-rozaj-solba"},
},
["1996"] = {
["descriptions"] = {"German orthography of 1996"},
["prefixes"] = {"de"},
},
["abl1943"] = {
["descriptions"] = {"Orthographic formulation of 1943 - Official in Brazil (Formulário Ortográfico de 1943 - Oficial no Brasil)"},
["prefixes"] = {"pt-br"},
},
["akuapem"] = {
["descriptions"] = {"Akuapem Twi"},
["prefixes"] = {"tw"},
},
["alalc97"] = {
["descriptions"] = {"ALA-LC Romanization, 1997 edition"},
["prefixes"] = {},
},
["aluku"] = {
["descriptions"] = {"Aluku dialect", "Boni dialect"},
["prefixes"] = {"djk"},
},
["ao1990"] = {
["descriptions"] = {"Portuguese Language Orthographic Agreement of 1990 (Acordo Ortográfico da Língua Portuguesa de 1990)"},
["prefixes"] = {"pt", "gl"},
},
["aranes"] = {
["descriptions"] = {"Aranese"},
["prefixes"] = {"oc"},
},
["arkaika"] = {
["descriptions"] = {"Arcaicam Esperantom", "Arkaika Esperanto"},
["prefixes"] = {"eo"},
},
["asante"] = {
["descriptions"] = {"Asante Twi", "Ashanti Twi"},
["prefixes"] = {"tw"},
},
["auvern"] = {
["descriptions"] = {"Auvergnat"},
["prefixes"] = {"oc"},
},
["baku1926"] = {
["descriptions"] = {"Unified Turkic Latin Alphabet (Historical)"},
["prefixes"] = {"az", "ba", "crh", "kk", "krc", "ky", "sah", "tk", "tt", "uz"},
},
["balanka"] = {
["descriptions"] = {"The Balanka dialect of Anii"},
["prefixes"] = {"blo"},
},
["barla"] = {
["descriptions"] = {"The Barlavento dialect group of Kabuverdianu"},
["prefixes"] = {"kea"},
},
["basiceng"] = {
["descriptions"] = {"Basic English"},
["prefixes"] = {"en"},
},
["bauddha"] = {
["descriptions"] = {"Buddhist Hybrid Sanskrit"},
["prefixes"] = {"sa"},
},
["biscayan"] = {
["descriptions"] = {"Biscayan dialect of Basque"},
["prefixes"] = {"eu"},
},
["biske"] = {
["descriptions"] = {"The San Giorgio dialect of Resian", "The Bila dialect of Resian"},
["prefixes"] = {"sl-rozaj"},
},
["bohoric"] = {
["descriptions"] = {"Slovene in Bohorič alphabet"},
["prefixes"] = {"sl"},
},
["boont"] = {
["descriptions"] = {"Boontling"},
["prefixes"] = {"en"},
},
["bornholm"] = {
["descriptions"] = {"Bornholmsk"},
["prefixes"] = {"da"},
},
["cisaup"] = {
["descriptions"] = {"Cisalpine"},
["prefixes"] = {"oc"},
},
["colb1945"] = {
["descriptions"] = {"Portuguese-Brazilian Orthographic Convention of 1945 (Convenção Ortográfica Luso-Brasileira de 1945)"},
["prefixes"] = {"pt"},
},
["cornu"] = {
["descriptions"] = {"Cornu-English", "Cornish English", "Anglo-Cornish"},
["prefixes"] = {"en"},
},
["creiss"] = {
["descriptions"] = {"Occitan variants of the Croissant area"},
["prefixes"] = {"oc"},
},
["dajnko"] = {
["descriptions"] = {"Slovene in Dajnko alphabet"},
["prefixes"] = {"sl"},
},
["ekavsk"] = {
["descriptions"] = {"Serbian with Ekavian pronunciation"},
["prefixes"] = {"sr", "sr-latn", "sr-cyrl"},
},
["emodeng"] = {
["descriptions"] = {"Early Modern English (1500-1700)"},
["prefixes"] = {"en"},
},
["fonipa"] = {
["descriptions"] = {"International Phonetic Alphabet"},
["prefixes"] = {},
},
["fonkirsh"] = {
["descriptions"] = {"Kirshenbaum Phonetic Alphabet"},
["prefixes"] = {},
},
["fonnapa"] = {
["descriptions"] = {"North American Phonetic Alphabet", "Americanist Phonetic Notation"},
["prefixes"] = {},
},
["fonupa"] = {
["descriptions"] = {"Uralic Phonetic Alphabet"},
["prefixes"] = {},
},
["fonxsamp"] = {
["descriptions"] = {"X-SAMPA transcription"},
["prefixes"] = {},
},
["gallo"] = {
["descriptions"] = {"Gallo"},
["prefixes"] = {"fr"},
},
["gascon"] = {
["descriptions"] = {"Gascon"},
["prefixes"] = {"oc"},
},
["grclass"] = {
["descriptions"] = {"Classical Occitan orthography"},
["prefixes"] = {"oc", "oc-aranes", "oc-auvern", "oc-cisaup", "oc-creiss", "oc-gascon", "oc-lemosin", "oc-lengadoc", "oc-nicard", "oc-provenc", "oc-vivaraup"},
},
["grital"] = {
["descriptions"] = {"Italian-inspired Occitan orthography"},
["prefixes"] = {"oc", "oc-cisaup", "oc-nicard", "oc-provenc"},
},
["grmistr"] = {
["descriptions"] = {"Mistralian or Mistralian-inspired Occitan orthography"},
["prefixes"] = {"oc", "oc-aranes", "oc-auvern", "oc-cisaup", "oc-creiss", "oc-gascon", "oc-lemosin", "oc-lengadoc", "oc-nicard", "oc-provenc", "oc-vivaraup"},
},
["hepburn"] = {
["descriptions"] = {"Hepburn romanization"},
["prefixes"] = {"ja-latn"},
},
["hognorsk"] = {
["descriptions"] = {"Norwegian in Høgnorsk (High Norwegian) orthography"},
["prefixes"] = {"nn"},
},
["hsistemo"] = {
["descriptions"] = {"Standard H-system orthographic fallback for spelling Esperanto"},
["prefixes"] = {"eo"},
},
["ijekavsk"] = {
["descriptions"] = {"Serbian with Ijekavian pronunciation"},
["prefixes"] = {"sr", "sr-latn", "sr-cyrl"},
},
["itihasa"] = {
["descriptions"] = {"Epic Sanskrit"},
["prefixes"] = {"sa"},
},
["ivanchov"] = {
["descriptions"] = {"Bulgarian in 1899 orthography"},
["prefixes"] = {"bg"},
},
["jauer"] = {
["descriptions"] = {"Jauer dialect of Romansh"},
["prefixes"] = {"rm"},
},
["jyutping"] = {
["descriptions"] = {"Jyutping Cantonese Romanization"},
["prefixes"] = {"yue"},
},
["kkcor"] = {
["descriptions"] = {"Common Cornish orthography of Revived Cornish"},
["prefixes"] = {"kw"},
},
["kociewie"] = {
["descriptions"] = {"The Kociewie dialect of Polish"},
["prefixes"] = {"pl"},
},
["kscor"] = {
["descriptions"] = {"Standard Cornish orthography of Revived Cornish", "Kernowek Standard"},
["prefixes"] = {"kw"},
},
["laukika"] = {
["descriptions"] = {"Classical Sanskrit"},
["prefixes"] = {"sa"},
},
["lemosin"] = {
["descriptions"] = {"Limousin"},
["prefixes"] = {"oc"},
},
["lengadoc"] = {
["descriptions"] = {"Languedocien"},
["prefixes"] = {"oc"},
},
["lipaw"] = {
["descriptions"] = {"The Lipovaz dialect of Resian", "The Lipovec dialect of Resian"},
["prefixes"] = {"sl-rozaj"},
},
["luna1918"] = {
["descriptions"] = {"Post-1917 Russian orthography"},
["prefixes"] = {"ru"},
},
["metelko"] = {
["descriptions"] = {"Slovene in Metelko alphabet"},
["prefixes"] = {"sl"},
},
["monoton"] = {
["descriptions"] = {"Monotonic Greek"},
["prefixes"] = {"el"},
},
["ndyuka"] = {
["descriptions"] = {"Ndyuka dialect", "Aukan dialect"},
["prefixes"] = {"djk"},
},
["nedis"] = {
["descriptions"] = {"Natisone dialect", "Nadiza dialect"},
["prefixes"] = {"sl"},
},
["newfound"] = {
["descriptions"] = {"Newfoundland English"},
["prefixes"] = {"en-ca"},
},
["nicard"] = {
["descriptions"] = {"Niçard"},
["prefixes"] = {"oc"},
},
["njiva"] = {
["descriptions"] = {"The Gniva dialect of Resian", "The Njiva dialect of Resian"},
["prefixes"] = {"sl-rozaj"},
},
["nulik"] = {
["descriptions"] = {"Volapük nulik", "Volapük perevidöl", "Volapük nulädik", "de Jong's Volapük", "New Volapük", "Revised Volapük", "Modern Volapük"},
["prefixes"] = {"vo"},
},
["osojs"] = {
["descriptions"] = {"The Oseacco dialect of Resian", "The Osojane dialect of Resian"},
["prefixes"] = {"sl-rozaj"},
},
["oxendict"] = {
["descriptions"] = {"Oxford English Dictionary spelling"},
["prefixes"] = {"en"},
},
["pahawh2"] = {
["descriptions"] = {"Pahawh Hmong Second Stage Reduced orthography"},
["prefixes"] = {"mww", "hnj"},
},
["pahawh3"] = {
["descriptions"] = {"Pahawh Hmong Third Stage Reduced orthography"},
["prefixes"] = {"mww", "hnj"},
},
["pahawh4"] = {
["descriptions"] = {"Pahawh Hmong Final Version orthography"},
["prefixes"] = {"mww", "hnj"},
},
["pamaka"] = {
["descriptions"] = {"Pamaka dialect"},
["prefixes"] = {"djk"},
},
["peano"] = {
["descriptions"] = {"Latino Sine Flexione", "Interlingua de API", "Interlingua de Peano"},
["prefixes"] = {"la"},
},
["petr1708"] = {
["descriptions"] = {"Petrine orthography"},
["prefixes"] = {"ru"},
},
["pinyin"] = {
["descriptions"] = {"Pinyin romanization"},
["prefixes"] = {"zh-latn", "bo-latn"},
},
["polyton"] = {
["descriptions"] = {"Polytonic Greek"},
["prefixes"] = {"el"},
},
["provenc"] = {
["descriptions"] = {"Provençal"},
["prefixes"] = {"oc"},
},
["puter"] = {
["descriptions"] = {"Puter idiom of Romansh"},
["prefixes"] = {"rm"},
},
["rigik"] = {
["descriptions"] = {"Volapük rigik", "Schleyer's Volapük", "Original Volapük", "Classic Volapük"},
["prefixes"] = {"vo"},
},
["rozaj"] = {
["descriptions"] = {"Resian", "Resianic", "Rezijan"},
["prefixes"] = {"sl"},
},
["rumgr"] = {
["descriptions"] = {"Rumantsch Grischun"},
["prefixes"] = {"rm"},
},
["scotland"] = {
["descriptions"] = {"Scottish Standard English"},
["prefixes"] = {"en"},
},
["scouse"] = {
["descriptions"] = {"Scouse"},
["prefixes"] = {"en"},
},
["simple"] = {
["descriptions"] = {"Simplified form"},
["prefixes"] = {},
},
["solba"] = {
["descriptions"] = {"The Stolvizza dialect of Resian", "The Solbica dialect of Resian"},
["prefixes"] = {"sl-rozaj"},
},
["sotav"] = {
["descriptions"] = {"The Sotavento dialect group of Kabuverdianu"},
["prefixes"] = {"kea"},
},
["spanglis"] = {
["descriptions"] = {"Spanglish"},
["prefixes"] = {"en", "es"},
},
["surmiran"] = {
["descriptions"] = {"Surmiran idiom of Romansh"},
["prefixes"] = {"rm"},
},
["sursilv"] = {
["descriptions"] = {"Sursilvan idiom of Romansh"},
["prefixes"] = {"rm"},
},
["sutsilv"] = {
["descriptions"] = {"Sutsilvan idiom of Romansh"},
["prefixes"] = {"rm"},
},
["synnejyl"] = {
["descriptions"] = {"Synnejysk", "South Jutish"},
["prefixes"] = {"da"},
},
["tarask"] = {
["descriptions"] = {"Belarusian in Taraskievica orthography"},
["prefixes"] = {"be"},
},
["tongyong"] = {
["descriptions"] = {"Tongyong Pinyin romanization"},
["prefixes"] = {"zh-latn"},
},
["tunumiit"] = {
["descriptions"] = {"Tunumiisiut", "East Greenlandic", "Østgrønlandsk"},
["prefixes"] = {"kl"},
},
["uccor"] = {
["descriptions"] = {"Unified Cornish orthography of Revived Cornish"},
["prefixes"] = {"kw"},
},
["ucrcor"] = {
["descriptions"] = {"Unified Cornish Revised orthography of Revived Cornish"},
["prefixes"] = {"kw"},
},
["ulster"] = {
["descriptions"] = {"Ulster dialect of Scots"},
["prefixes"] = {"sco"},
},
["unifon"] = {
["descriptions"] = {"Unifon phonetic alphabet"},
["prefixes"] = {"en", "hup", "kyh", "tol", "yur"},
},
["vaidika"] = {
["descriptions"] = {"Vedic Sanskrit"},
["prefixes"] = {"sa"},
},
["valencia"] = {
["descriptions"] = {"Valencian"},
["prefixes"] = {"ca"},
},
["vallader"] = {
["descriptions"] = {"Vallader idiom of Romansh"},
["prefixes"] = {"rm"},
},
["vecdruka"] = {
["descriptions"] = {"Latvian orthography used before 1920s (\"vecā druka\")"},
["prefixes"] = {"lv"},
},
["vivaraup"] = {
["descriptions"] = {"Vivaro-Alpine"},
["prefixes"] = {"oc"},
},
["wadegile"] = {
["descriptions"] = {"Wade-Giles romanization"},
["prefixes"] = {"zh-latn"},
},
["xsistemo"] = {
["descriptions"] = {"Standard X-system orthographic fallback for spelling Esperanto"},
["prefixes"] = {"eo"},
}
}
2eee5b02799b8bf67ba5f8d7191df7eb5c475d91
Module:Language/data/iana suppressed scripts
828
45
82
2024-01-03T21:24:49Z
Laggardson
2
Created page with "-- File-Date: 2022-03-02 return { ["Arab"] = {"ar", "fa", "ps", "ur"}, ["Armn"] = {"hy"}, ["Beng"] = {"as", "bn"}, ["Blis"] = {"zbl"}, ["Cyrl"] = {"ab", "be", "bg", "kk", "mk", "ru", "uk"}, ["Deva"] = {"hi", "mr", "ne", "kok", "mai"}, ["Ethi"] = {"am", "ti"}, ["Geor"] = {"ka"}, ["Grek"] = {"el"}, ["Gujr"] = {"gu"}, ["Guru"] = {"pa"}, ["Hebr"] = {"he", "iw", "yi"}, ["Jpan"] = {"ja"}, ["Khmr"] = {"km"}, ["Knda"] = {"kn"}, ["Kore"] = {"ko"}, ["Laoo"] = {"lo..."
Scribunto
text/plain
-- File-Date: 2022-03-02
return {
["Arab"] = {"ar", "fa", "ps", "ur"},
["Armn"] = {"hy"},
["Beng"] = {"as", "bn"},
["Blis"] = {"zbl"},
["Cyrl"] = {"ab", "be", "bg", "kk", "mk", "ru", "uk"},
["Deva"] = {"hi", "mr", "ne", "kok", "mai"},
["Ethi"] = {"am", "ti"},
["Geor"] = {"ka"},
["Grek"] = {"el"},
["Gujr"] = {"gu"},
["Guru"] = {"pa"},
["Hebr"] = {"he", "iw", "yi"},
["Jpan"] = {"ja"},
["Khmr"] = {"km"},
["Knda"] = {"kn"},
["Kore"] = {"ko"},
["Laoo"] = {"lo"},
["Latn"] = {"af", "ay", "bs", "ca", "ch", "cs", "cy", "da", "de", "en", "eo",
"es", "et", "eu", "fi", "fj", "fo", "fr", "fy", "ga", "gl", "gn",
"gv", "hr", "ht", "hu", "id", "in", "is", "it", "kl", "la", "lb",
"ln", "lt", "lv", "mg", "mh", "mo", "ms", "mt", "na", "nb", "nd",
"nl", "nn", "no", "nr", "ny", "om", "pl", "pt", "qu", "rm", "rn",
"ro", "rw", "sg", "sk", "sl", "sm", "so", "sq", "ss", "st", "sv",
"sw", "tl", "tn", "to", "tr", "ts", "ve", "vi", "xh", "zu", "dsb",
"frr", "frs", "gsw", "hsb", "men", "nds", "niu", "nso", "tem", "tkl", "tmh",
"tpi", "tvl"},
["Mlym"] = {"ml"},
["Mymr"] = {"my"},
["Nkoo"] = {"nqo"},
["Orya"] = {"or"},
["Sinh"] = {"si"},
["Taml"] = {"ta"},
["Telu"] = {"te"},
["Thaa"] = {"dv"},
["Thai"] = {"th"},
["Tibt"] = {"dz"}
}
d0aff91de58e25f97ceb74982eabd84842790a99
Module:Lang/ISO 639 synonyms
828
46
83
2024-01-03T21:27:15Z
Laggardson
2
Created page with "-- File-Date: 2013-01-11 return { ["aar"] = "aa", ["abk"] = "ab", ["afr"] = "af", ["aka"] = "ak", ["amh"] = "am", ["ara"] = "ar", ["arg"] = "an", ["asm"] = "as", ["ava"] = "av", ["ave"] = "ae", ["aym"] = "ay", ["aze"] = "az", ["bak"] = "ba", ["bam"] = "bm", ["bel"] = "be", ["ben"] = "bn", ["bih"] = "bh", ["bis"] = "bi", ["bod"] = "bo", ["bos"] = "bs", ["bre"] = "br", ["bul"] = "bg", ["cat"] = "ca", ["ces"] = "cs", ["cha"] = "ch", ["che"] = "ce",..."
Scribunto
text/plain
-- File-Date: 2013-01-11
return {
["aar"] = "aa",
["abk"] = "ab",
["afr"] = "af",
["aka"] = "ak",
["amh"] = "am",
["ara"] = "ar",
["arg"] = "an",
["asm"] = "as",
["ava"] = "av",
["ave"] = "ae",
["aym"] = "ay",
["aze"] = "az",
["bak"] = "ba",
["bam"] = "bm",
["bel"] = "be",
["ben"] = "bn",
["bih"] = "bh",
["bis"] = "bi",
["bod"] = "bo",
["bos"] = "bs",
["bre"] = "br",
["bul"] = "bg",
["cat"] = "ca",
["ces"] = "cs",
["cha"] = "ch",
["che"] = "ce",
["chu"] = "cu",
["chv"] = "cv",
["cor"] = "kw",
["cos"] = "co",
["cre"] = "cr",
["cym"] = "cy",
["dan"] = "da",
["deu"] = "de",
["div"] = "dv",
["dzo"] = "dz",
["ell"] = "el",
["eng"] = "en",
["epo"] = "eo",
["est"] = "et",
["eus"] = "eu",
["ewe"] = "ee",
["fao"] = "fo",
["fas"] = "fa",
["fij"] = "fj",
["fin"] = "fi",
["fra"] = "fr",
["fry"] = "fy",
["ful"] = "ff",
["gla"] = "gd",
["gle"] = "ga",
["glg"] = "gl",
["glv"] = "gv",
["grn"] = "gn",
["guj"] = "gu",
["hat"] = "ht",
["hau"] = "ha",
["heb"] = "he",
["her"] = "hz",
["hin"] = "hi",
["hmo"] = "ho",
["hrv"] = "hr",
["hun"] = "hu",
["hye"] = "hy",
["ibo"] = "ig",
["ido"] = "io",
["iii"] = "ii",
["iku"] = "iu",
["ile"] = "ie",
["ina"] = "ia",
["ind"] = "id",
["ipk"] = "ik",
["isl"] = "is",
["ita"] = "it",
["jav"] = "jv",
["jpn"] = "ja",
["kal"] = "kl",
["kan"] = "kn",
["kas"] = "ks",
["kat"] = "ka",
["kau"] = "kr",
["kaz"] = "kk",
["khm"] = "km",
["kik"] = "ki",
["kin"] = "rw",
["kir"] = "ky",
["kom"] = "kv",
["kon"] = "kg",
["kor"] = "ko",
["kua"] = "kj",
["kur"] = "ku",
["lao"] = "lo",
["lat"] = "la",
["lav"] = "lv",
["lim"] = "li",
["lin"] = "ln",
["lit"] = "lt",
["ltz"] = "lb",
["lub"] = "lu",
["lug"] = "lg",
["mah"] = "mh",
["mal"] = "ml",
["mar"] = "mr",
["mkd"] = "mk",
["mlg"] = "mg",
["mlt"] = "mt",
["mon"] = "mn",
["mri"] = "mi",
["msa"] = "ms",
["mya"] = "my",
["nau"] = "na",
["nav"] = "nv",
["nbl"] = "nr",
["nde"] = "nd",
["ndo"] = "ng",
["nep"] = "ne",
["nld"] = "nl",
["nno"] = "nn",
["nob"] = "nb",
["nor"] = "no",
["nya"] = "ny",
["oci"] = "oc",
["oji"] = "oj",
["ori"] = "or",
["orm"] = "om",
["oss"] = "os",
["pan"] = "pa",
["pli"] = "pi",
["pol"] = "pl",
["por"] = "pt",
["pus"] = "ps",
["que"] = "qu",
["roh"] = "rm",
["ron"] = "ro",
["run"] = "rn",
["rus"] = "ru",
["sag"] = "sg",
["san"] = "sa",
["sin"] = "si",
["slk"] = "sk",
["slv"] = "sl",
["sme"] = "se",
["smo"] = "sm",
["sna"] = "sn",
["snd"] = "sd",
["som"] = "so",
["sot"] = "st",
["spa"] = "es",
["sqi"] = "sq",
["srd"] = "sc",
["srp"] = "sr",
["ssw"] = "ss",
["sun"] = "su",
["swa"] = "sw",
["swe"] = "sv",
["tah"] = "ty",
["tam"] = "ta",
["tat"] = "tt",
["tel"] = "te",
["tgk"] = "tg",
["tgl"] = "tl",
["tha"] = "th",
["tir"] = "ti",
["ton"] = "to",
["tsn"] = "tn",
["tso"] = "ts",
["tuk"] = "tk",
["tur"] = "tr",
["twi"] = "tw",
["uig"] = "ug",
["ukr"] = "uk",
["urd"] = "ur",
["uzb"] = "uz",
["ven"] = "ve",
["vie"] = "vi",
["vol"] = "vo",
["wln"] = "wa",
["wol"] = "wo",
["xho"] = "xh",
["yid"] = "yi",
["yor"] = "yo",
["zha"] = "za",
["zho"] = "zh",
["zul"] = "zu"
}
f3fb5374c9e0fdef6ce6ea22736b79468358ca19
Module:Math
828
47
84
2024-01-03T21:28:23Z
Laggardson
2
Created page with "--[[ This module provides a number of basic mathematical operations. ]] local yesno, getArgs -- lazily initialized local p = {} -- Holds functions to be returned from #invoke, and functions to make available to other Lua modules. local wrap = {} -- Holds wrapper functions that process arguments from #invoke. These act as intemediary between functions meant for #invoke and functions meant for Lua. --[[ Helper functions used to avoid redundant code. ]] local function..."
Scribunto
text/plain
--[[
This module provides a number of basic mathematical operations.
]]
local yesno, getArgs -- lazily initialized
local p = {} -- Holds functions to be returned from #invoke, and functions to make available to other Lua modules.
local wrap = {} -- Holds wrapper functions that process arguments from #invoke. These act as intemediary between functions meant for #invoke and functions meant for Lua.
--[[
Helper functions used to avoid redundant code.
]]
local function err(msg)
-- Generates wikitext error messages.
return mw.ustring.format('<strong class="error">Formatting error: %s</strong>', msg)
end
local function unpackNumberArgs(args)
-- Returns an unpacked list of arguments specified with numerical keys.
local ret = {}
for k, v in pairs(args) do
if type(k) == 'number' then
table.insert(ret, v)
end
end
return unpack(ret)
end
local function makeArgArray(...)
-- Makes an array of arguments from a list of arguments that might include nils.
local args = {...} -- Table of arguments. It might contain nils or non-number values, so we can't use ipairs.
local nums = {} -- Stores the numbers of valid numerical arguments.
local ret = {}
for k, v in pairs(args) do
v = p._cleanNumber(v)
if v then
nums[#nums + 1] = k
args[k] = v
end
end
table.sort(nums)
for i, num in ipairs(nums) do
ret[#ret + 1] = args[num]
end
return ret
end
local function fold(func, ...)
-- Use a function on all supplied arguments, and return the result. The function must accept two numbers as parameters,
-- and must return a number as an output. This number is then supplied as input to the next function call.
local vals = makeArgArray(...)
local count = #vals -- The number of valid arguments
if count == 0 then return
-- Exit if we have no valid args, otherwise removing the first arg would cause an error.
nil, 0
end
local ret = table.remove(vals, 1)
for _, val in ipairs(vals) do
ret = func(ret, val)
end
return ret, count
end
--[[
Fold arguments by selectively choosing values (func should return when to choose the current "dominant" value).
]]
local function binary_fold(func, ...)
local value = fold((function(a, b) if func(a, b) then return a else return b end end), ...)
return value
end
--[[
random
Generate a random number
Usage:
{{#invoke: Math | random }}
{{#invoke: Math | random | maximum value }}
{{#invoke: Math | random | minimum value | maximum value }}
]]
function wrap.random(args)
local first = p._cleanNumber(args[1])
local second = p._cleanNumber(args[2])
return p._random(first, second)
end
function p._random(first, second)
math.randomseed(mw.site.stats.edits + mw.site.stats.pages + os.time() + math.floor(os.clock() * 1000000000))
-- math.random will throw an error if given an explicit nil parameter, so we need to use if statements to check the params.
if first and second then
if first <= second then -- math.random doesn't allow the first number to be greater than the second.
return math.random(first, second)
end
elseif first then
return math.random(first)
else
return math.random()
end
end
--[[
order
Determine order of magnitude of a number
Usage:
{{#invoke: Math | order | value }}
]]
function wrap.order(args)
local input_string = (args[1] or args.x or '0');
local input_number = p._cleanNumber(input_string);
if input_number == nil then
return err('order of magnitude input appears non-numeric')
else
return p._order(input_number)
end
end
function p._order(x)
if x == 0 then return 0 end
return math.floor(math.log10(math.abs(x)))
end
--[[
precision
Detemines the precision of a number using the string representation
Usage:
{{ #invoke: Math | precision | value }}
]]
function wrap.precision(args)
local input_string = (args[1] or args.x or '0');
local trap_fraction = args.check_fraction;
local input_number;
if not yesno then
yesno = require('Module:Yesno')
end
if yesno(trap_fraction, true) then -- Returns true for all input except nil, false, "no", "n", "0" and a few others. See [[Module:Yesno]].
local pos = string.find(input_string, '/', 1, true);
if pos ~= nil then
if string.find(input_string, '/', pos + 1, true) == nil then
local denominator = string.sub(input_string, pos+1, -1);
local denom_value = tonumber(denominator);
if denom_value ~= nil then
return math.log10(denom_value);
end
end
end
end
input_number, input_string = p._cleanNumber(input_string);
if input_string == nil then
return err('precision input appears non-numeric')
else
return p._precision(input_string)
end
end
function p._precision(x)
if type(x) == 'number' then
x = tostring(x)
end
x = string.upper(x)
local decimal = x:find('%.')
local exponent_pos = x:find('E')
local result = 0;
if exponent_pos ~= nil then
local exponent = string.sub(x, exponent_pos + 1)
x = string.sub(x, 1, exponent_pos - 1)
result = result - tonumber(exponent)
end
if decimal ~= nil then
result = result + string.len(x) - decimal
return result
end
local pos = string.len(x);
while x:byte(pos) == string.byte('0') do
pos = pos - 1
result = result - 1
if pos <= 0 then
return 0
end
end
return result
end
--[[
max
Finds the maximum argument
Usage:
{{#invoke:Math| max | value1 | value2 | ... }}
Note, any values that do not evaluate to numbers are ignored.
]]
function wrap.max(args)
return p._max(unpackNumberArgs(args))
end
function p._max(...)
local max_value = binary_fold((function(a, b) return a > b end), ...)
if max_value then
return max_value
end
end
--[[
median
Find the median of set of numbers
Usage:
{{#invoke:Math | median | number1 | number2 | ...}}
OR
{{#invoke:Math | median }}
]]
function wrap.median(args)
return p._median(unpackNumberArgs(args))
end
function p._median(...)
local vals = makeArgArray(...)
local count = #vals
table.sort(vals)
if count == 0 then
return 0
end
if p._mod(count, 2) == 0 then
return (vals[count/2] + vals[count/2+1])/2
else
return vals[math.ceil(count/2)]
end
end
--[[
min
Finds the minimum argument
Usage:
{{#invoke:Math| min | value1 | value2 | ... }}
OR
{{#invoke:Math| min }}
When used with no arguments, it takes its input from the parent
frame. Note, any values that do not evaluate to numbers are ignored.
]]
function wrap.min(args)
return p._min(unpackNumberArgs(args))
end
function p._min(...)
local min_value = binary_fold((function(a, b) return a < b end), ...)
if min_value then
return min_value
end
end
--[[
sum
Finds the sum
Usage:
{{#invoke:Math| sum | value1 | value2 | ... }}
OR
{{#invoke:Math| sum }}
Note, any values that do not evaluate to numbers are ignored.
]]
function wrap.sum(args)
return p._sum(unpackNumberArgs(args))
end
function p._sum(...)
local sums, count = fold((function(a, b) return a + b end), ...)
if not sums then
return 0
else
return sums
end
end
--[[
average
Finds the average
Usage:
{{#invoke:Math| average | value1 | value2 | ... }}
OR
{{#invoke:Math| average }}
Note, any values that do not evaluate to numbers are ignored.
]]
function wrap.average(args)
return p._average(unpackNumberArgs(args))
end
function p._average(...)
local sum, count = fold((function(a, b) return a + b end), ...)
if not sum then
return 0
else
return sum / count
end
end
--[[
round
Rounds a number to specified precision
Usage:
{{#invoke:Math | round | value | precision }}
--]]
function wrap.round(args)
local value = p._cleanNumber(args[1] or args.value or 0)
local precision = p._cleanNumber(args[2] or args.precision or 0)
if value == nil or precision == nil then
return err('round input appears non-numeric')
else
return p._round(value, precision)
end
end
function p._round(value, precision)
local rescale = math.pow(10, precision or 0);
return math.floor(value * rescale + 0.5) / rescale;
end
--[[
log10
returns the log (base 10) of a number
Usage:
{{#invoke:Math | log10 | x }}
]]
function wrap.log10(args)
return math.log10(args[1])
end
--[[
mod
Implements the modulo operator
Usage:
{{#invoke:Math | mod | x | y }}
--]]
function wrap.mod(args)
local x = p._cleanNumber(args[1])
local y = p._cleanNumber(args[2])
if not x then
return err('first argument to mod appears non-numeric')
elseif not y then
return err('second argument to mod appears non-numeric')
else
return p._mod(x, y)
end
end
function p._mod(x, y)
local ret = x % y
if not (0 <= ret and ret < y) then
ret = 0
end
return ret
end
--[[
gcd
Calculates the greatest common divisor of multiple numbers
Usage:
{{#invoke:Math | gcd | value 1 | value 2 | value 3 | ... }}
--]]
function wrap.gcd(args)
return p._gcd(unpackNumberArgs(args))
end
function p._gcd(...)
local function findGcd(a, b)
local r = b
local oldr = a
while r ~= 0 do
local quotient = math.floor(oldr / r)
oldr, r = r, oldr - quotient * r
end
if oldr < 0 then
oldr = oldr * -1
end
return oldr
end
local result, count = fold(findGcd, ...)
return result
end
--[[
precision_format
Rounds a number to the specified precision and formats according to rules
originally used for {{template:Rnd}}. Output is a string.
Usage:
{{#invoke: Math | precision_format | number | precision }}
]]
function wrap.precision_format(args)
local value_string = args[1] or 0
local precision = args[2] or 0
return p._precision_format(value_string, precision)
end
function p._precision_format(value_string, precision)
-- For access to Mediawiki built-in formatter.
local lang = mw.getContentLanguage();
local value
value, value_string = p._cleanNumber(value_string)
precision = p._cleanNumber(precision)
-- Check for non-numeric input
if value == nil or precision == nil then
return err('invalid input when rounding')
end
local current_precision = p._precision(value)
local order = p._order(value)
-- Due to round-off effects it is neccesary to limit the returned precision under
-- some circumstances because the terminal digits will be inaccurately reported.
if order + precision >= 14 then
if order + p._precision(value_string) >= 14 then
precision = 13 - order;
end
end
-- If rounding off, truncate extra digits
if precision < current_precision then
value = p._round(value, precision)
current_precision = p._precision(value)
end
local formatted_num = lang:formatNum(math.abs(value))
local sign
-- Use proper unary minus sign rather than ASCII default
if value < 0 then
sign = '−'
else
sign = ''
end
-- Handle cases requiring scientific notation
if string.find(formatted_num, 'E', 1, true) ~= nil or math.abs(order) >= 9 then
value = value * math.pow(10, -order)
current_precision = current_precision + order
precision = precision + order
formatted_num = lang:formatNum(math.abs(value))
else
order = 0;
end
formatted_num = sign .. formatted_num
-- Pad with zeros, if needed
if current_precision < precision then
local padding
if current_precision <= 0 then
if precision > 0 then
local zero_sep = lang:formatNum(1.1)
formatted_num = formatted_num .. zero_sep:sub(2,2)
padding = precision
if padding > 20 then
padding = 20
end
formatted_num = formatted_num .. string.rep('0', padding)
end
else
padding = precision - current_precision
if padding > 20 then
padding = 20
end
formatted_num = formatted_num .. string.rep('0', padding)
end
end
-- Add exponential notation, if necessary.
if order ~= 0 then
-- Use proper unary minus sign rather than ASCII default
if order < 0 then
order = '−' .. lang:formatNum(math.abs(order))
else
order = lang:formatNum(order)
end
formatted_num = formatted_num .. '<span style="margin:0 .15em 0 .25em">×</span>10<sup>' .. order .. '</sup>'
end
return formatted_num
end
--[[
divide
Implements the division operator
Usage:
{{#invoke:Math | divide | x | y | round= | precision= }}
--]]
function wrap.divide(args)
local x = args[1]
local y = args[2]
local round = args.round
local precision = args.precision
if not yesno then
yesno = require('Module:Yesno')
end
return p._divide(x, y, yesno(round), precision)
end
function p._divide(x, y, round, precision)
if y == nil or y == "" then
return err("Empty divisor")
elseif not tonumber(y) then
if type(y) == 'string' and string.sub(y, 1, 1) == '<' then
return y
else
return err("Not a number: " .. y)
end
elseif x == nil or x == "" then
return err("Empty dividend")
elseif not tonumber(x) then
if type(x) == 'string' and string.sub(x, 1, 1) == '<' then
return x
else
return err("Not a number: " .. x)
end
else
local z = x / y
if round then
return p._round(z, 0)
elseif precision then
return p._round(z, precision)
else
return z
end
end
end
--[[
Helper function that interprets the input numerically. If the
input does not appear to be a number, attempts evaluating it as
a parser functions expression.
]]
function p._cleanNumber(number_string)
if type(number_string) == 'number' then
-- We were passed a number, so we don't need to do any processing.
return number_string, tostring(number_string)
elseif type(number_string) ~= 'string' or not number_string:find('%S') then
-- We were passed a non-string or a blank string, so exit.
return nil, nil;
end
-- Attempt basic conversion
local number = tonumber(number_string)
-- If failed, attempt to evaluate input as an expression
if number == nil then
local success, result = pcall(mw.ext.ParserFunctions.expr, number_string)
if success then
number = tonumber(result)
number_string = tostring(number)
else
number = nil
number_string = nil
end
else
number_string = number_string:match("^%s*(.-)%s*$") -- String is valid but may contain padding, clean it.
number_string = number_string:match("^%+(.*)$") or number_string -- Trim any leading + signs.
if number_string:find('^%-?0[xX]') then
-- Number is using 0xnnn notation to indicate base 16; use the number that Lua detected instead.
number_string = tostring(number)
end
end
return number, number_string
end
--[[
Wrapper function that does basic argument processing. This ensures that all functions from #invoke can use either the current
frame or the parent frame, and it also trims whitespace for all arguments and removes blank arguments.
]]
local mt = { __index = function(t, k)
return function(frame)
if not getArgs then
getArgs = require('Module:Arguments').getArgs
end
return wrap[k](getArgs(frame)) -- Argument processing is left to Module:Arguments. Whitespace is trimmed and blank arguments are removed.
end
end }
return setmetatable(p, mt)
2bbe734d898299f65412963a3c1782e9fcc4d9ca
Module:Table empty cell
828
48
85
2024-01-03T21:29:19Z
Laggardson
2
Created page with "local p = {} -- List of default title texts. local defaultTitleTextlist = { ["TBA"] = "To be announced", ["TBD"] = "To be determined", ["N/A"] = "Not available" } -- Local function which is used to retrieve the title text. local function getTitleText(args, altText) local titleText = args[2] or args["title_text"] -- If the title text was manually added, return it. if (titleText) then return titleText end -- The title text was not set, get the correct defau..."
Scribunto
text/plain
local p = {}
-- List of default title texts.
local defaultTitleTextlist = {
["TBA"] = "To be announced",
["TBD"] = "To be determined",
["N/A"] = "Not available"
}
-- Local function which is used to retrieve the title text.
local function getTitleText(args, altText)
local titleText = args[2] or args["title_text"]
-- If the title text was manually added, return it.
if (titleText) then
return titleText
end
-- The title text was not set, get the correct default text which corresponds to the alt text.
for k, v in pairs(defaultTitleTextlist) do
if (altText == k) then
return v
end
end
end
-- Local function which is used to retrieve the alt text.
local function getAltText(args)
local altText = args[1] or args["alt_text"]
if (altText == nil) then
altText = "TBA"
end
return altText
end
-- Local function which does the actual main process.
function p._main(args)
local altText = getAltText(args)
local titleText = getTitleText(args, altText)
return "<small style=\"color: #2C2C2C\" title=\"" .. titleText .. "\">" .. altText .. "</small>"
end
--[[
Public function which is used to create information for an empty text cell.
Parameters:
-- |1= or |alt_text= — optional; The text which will be written in the cell.
-- |2= or |title_text= — optional; The text which will be shown when hovering over the cell.
--]]
function p.main(frame)
local getArgs = require('Module:Arguments').getArgs;
local args = getArgs(frame);
return p._main(args)
end
return p
ac2d0497cb14c149d19c3d72f0f81006080f338a
List of Fate episodes
0
10
86
16
2024-01-03T21:32:19Z
Laggardson
2
wikitext
text/x-wiki
Episodes of Season 1: ''[[Fate]]'', which ran from March, 2019 to October, 2019.
{{Episode table | background=#FFB27B | season=1 | title=15 | airdate=10 | aux2=9 | aux2T=Runtime
|episodes=
{{Episode list
|EpisodeNumber2=01
|Title=[[Fate 01: The Dirge Pt. 1|The Dirge Pt. 1]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=02
|Title=[[Marielda 02: The City of Light Pt. 2|The City of Light Pt. 2]]
|AltDate=July 21, 2016
|Aux2=01:55:20
|ShortSummary=Marielda's quiet year continues, from the coming of the [[Pala-din]] in midsummer to the threat of the Frost Shepherds' winter arrival.
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=03
|Title=[[Marielda 03: The Crosstown Job Pt. 1|The Crosstown Job Pt. 1]]
|AltDate=August 5, 2016
|Aux2=02:37:15
|ShortSummary=Ali, Jack, Sylvi and Dre build their characters and their crew, [[The Six]], before embarking on their first heist: stealing the plates that control Marielda's new crosstown train.
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=04
|Title=[[Marielda 04: The Crosstown Job Pt. 2|The Crosstown Job Pt. 2]]
|AltDate=August 11, 2016
|Aux2=02:05:04
|ShortSummary=Aboard a rushing train fifty stories over Helianthus Parish, the members of The Six continue their attempt to steal the navigation plates of the Crosstown Express.
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=05
|Title=[[Marielda 05: War and Azaleas|War and Azaleas]]
|AltDate=August 19, 2016
|Aux2=01:29:30
|ShortSummary=The members of have some downtime after their successful heist, but begin to entangle themselves in the consequences of the criminal life.
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=06
|Title=[[Marielda 06: The Valentine Affair Pt. 1|The Valentine Affair Pt. 1]]
|AltDate=August 25, 2016
|Aux2=01:44:57
|ShortSummary=Looking for help to end their war with the [[Fontmen]], The Six embark upon a plan to steal a book from the famously guarded [[Memoriam College (Marielda)|Memoriam College]].
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=07
|Title=[[Marielda 07: The Valentine Affair Pt. 2|The Valentine Affair Pt. 2]]
|AltDate=September 1, 2016
|Aux2=01:37:19
|ShortSummary=[[Aubrey]], [[Sige]] and [[Castille]] enter the library, where they face off with the [[Yellow House]]. Meanwhile, a traumatized [[Hitchcock]] makes his way to the rectory.
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=08
|Title=[[Marielda 08: The Valentine Affair Pt. 3|The Valentine Affair Pt. 3]]
|AltDate=September 9, 2016
|Aux2=01:57:15
|ShortSummary=The gang frees [[Maelgwyn]] from the library vault. Hitchcock has troubling dreams before finding himself running with [[Caroline Fair-Play]] from a [[Rector Sabinia|void nun]].
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=09
|Title=[[Marielda 09: The Valentine Affair Pt. 4|The Valentine Affair Pt. 4]]
|AltDate=September 15, 2016
|Aux2=01:41:48
|ShortSummary=As the situation in and around Memoriam College gets increasingly unstable, the members of The Six do their best to escape with a stolen book and their lives.
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=10
|Title=[[Marielda 10: Four Conversations|Four Conversations]]
|AltDate=September 22, 2016
|Aux2=01:48:48
|ShortSummary=The Six go through an extended downtime period in the months between The Valentine Affair and their final job.
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=11
|Title=[[Marielda 11: The Killing of the King-God Samothes By The Traitor Prince Maelgwyn Pt. 1|The Killing of the King-God Samothes By The Traitor Prince Maelgwyn Pt. 1]]
|AltDate=September 30, 2016
|Aux2=01:35:36
|ShortSummary=The Six plan and begin their heist to kill Samothes, and face off against the Lance Nobles on their way into Samothes' volcano on [[High Sun Day]].
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=12
|Title=[[Marielda 12: The Killing of the King-God Samothes By The Traitor Prince Maelgwyn Pt. 2|The Killing of the King-God Samothes By The Traitor Prince Maelgwyn Pt. 2]]
|AltDate=October 6, 2016
|Aux2=01:34:58
|ShortSummary=The train arrives at the volcano, where everyone is recieved by the [[Primo|Artificer Mundane]], who gives them new clothes. Afterwards, the group explores the volcano and more guests arrive.
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=13
|Title=[[Marielda 13: The Killing of the King-God Samothes By The Traitor Prince Maelgwyn Pt. 3|The Killing of the King-God Samothes By The Traitor Prince Maelgwyn Pt. 3]]
|AltDate=October 13, 2016
|Aux2=01:59:14
|ShortSummary=While exploring, Aubrey clashes with Samot's retinue of mages, and the rest of the group attempt to reconvene in time for dinner.
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=14
|Title=[[Marielda 14: The Killing of the King-God Samothes By The Traitor Prince Maelgwyn Pt. 4|The Killing of the King-God Samothes By The Traitor Prince Maelgwyn Pt. 4]]
|AltDate=October 20, 2016
|Aux2=02:01:30
|ShortSummary=The Six and the Mages follow Maelgwyn down to Samothes' forge. Sige tries and fails to stop Maelgwyn from killing Samothes with the [[Blade in the Dark]].
|LineColor=FFB27B
}}
}}
==Notes==
{{reflist|group=note}}
{{Marielda episodes}}
{{NavboxMarielda}}
[[Category:Marielda]]
[[Category:Lists of episodes]]
a3968f1f540cadac8d3a5f917f1c051193b172e1
87
86
2024-01-03T21:37:52Z
Laggardson
2
wikitext
text/x-wiki
Episodes of Season 1: ''[[Fate]]'', which ran from March, 2019 to October, 2019.
{{Episode table | background=#FFB27B | season=1 | title=15 | airdate=10 | aux2=9 | aux2T=Runtime
|episodes=
{{Episode list
|EpisodeNumber2=01
|Title=[[Fate 01: The Dirge Pt. 1|The Dirge Pt. 1]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FF0000
}}
{{Episode list
|EpisodeNumber2=02
|Title=[[Fate 02: The Dirge Pt. 2|The Dirge Pt. 2]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FF0000
}}
{{Episode list
|EpisodeNumber2=03
|Title=
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=04
|Title=
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=05
|Title=
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=06
|Title=
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=07
|Title=
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=08
|Title=
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=09
|Title=
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=10
|Title=
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=11
|Title=
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=12
|Title=
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=13
|Title=
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=14
|Title=
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=15
|Title=[[Fate 15:Vacation pt.4|Vacation pt.4]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
}}
==Notes==
{{reflist|group=note}}
{{Marielda episodes}}
{{NavboxMarielda}}
[[Category:Marielda]]
[[Category:Lists of episodes]]
892c55058ddf58d59c1117fb73a9e1d961ed779d
88
87
2024-01-03T21:47:07Z
Laggardson
2
wikitext
text/x-wiki
Episodes of Season 1: ''[[Fate]]'', which ran from March, 2019 to October, 2019.
{{Episode table | background=#FFB27B | season=1 | title=15 | airdate=10 | aux2=9 | aux2T=Runtime
|episodes=
{{Episode list
|EpisodeNumber2=01
|Title=[[Fate 01: The Dirge Pt. 1|The Dirge Pt. 1]]
|AltDate=
|Aux2=
|ShortSummary=Three strangers arrive at a run-down hotel in the middle of a rainstorm, seeking shelter and a warm place to spend the night.
|LineColor=FF0000
}}
{{Episode list
|EpisodeNumber2=02
|Title=[[Fate 02: The Dirge Pt. 2|The Dirge Pt. 2]]
|AltDate=
|Aux2=
|ShortSummary=Trapped inside with a new friend in tow [[Keeley Stewart|Keeley]], [[Maggie Thornback|Maggie]], and [[Henrietta Salm|Henrietta]] attempt to get to the bottom of the mysterious events at [[The Dirge]].
|LineColor=FF0000
}}
{{Episode list
|EpisodeNumber2=03
|Title=[[Fate 03: Geringer Pt. 1|Geringer Pt. 1]]
|AltDate=
|Aux2=
|ShortSummary=[[Keeley Stewart|Keeley]], [[Maggie Thornback|Maggie]], and [[Henrietta Salm|Henrietta]] make an unanticipated stop in the town of [[Geringer]], and quickly discover that something strange is stalking the cornfields...
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=04
|Title=[[Fate 04: Geringer Pt. 2|Geringer Pt. 2]]
|AltDate=
|Aux2=
|ShortSummary=After [[Maggie Thornback|Maggie]]'s terrifying encounter with the threats hiding in this town, the Hunters work to try and get to the bottom of what exactly is going on in [[Geringer]]. But they'd better work quickly - some of them are starting to forget there were any threats at all...
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=05
|Title=[[Fate 05: Geringer Pt. 3|Geringer Pt. 3]]
|AltDate=
|Aux2=
|ShortSummary=With tensions escalating, [[Keeley Stewart|Keeley]], [[Maggie Thornback|Maggie]], and [[Henrietta Salm|Henrietta]] are going to need to act quickly. But, as memories fade and the monsters move in, who's going to come looking for strangers?
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=06
|Title=[[Fate 06: Silky & The Solutions Pt. 1|Silky & The Solutions Pt. 1]]
|AltDate=
|Aux2=
|ShortSummary=An unexpected sighting leads Pest Control to the comeback show of a famous musical group. But as the lights dim and the crowd goes quiet, will they be forced to face the music? [[Keeley Stewart|Keely]] joins a protest. Henrietta buys a beer. Maggie creates a disturbance.
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=07
|Title=[[Fate 07: Silky & The Solutions Pt. 2|Silky & The Solutions Pt. 2]]
|AltDate=
|Aux2=
|ShortSummary=The Hunters are in a race against the clock as the concert rages on around them, and the monster finally makes itself known. Now, balancing on the edge of disaster, they must make a potentially deadly choice. Maggie reconnects with family. Henrietta leads a chant. Keely makes a decision.
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=08
|Title=[[Fate 08: Silky & The Solutions Pt. 3|Silky & The Solutions Pt. 3]]
|AltDate=
|Aux2=
|ShortSummary=With time running out, and their own lives in danger, it's time for the Hunters to make their final moves against their parasitic foe. Will this hunt be their swan song?
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=09
|Title=[[Fate 09: MRS Montessori Pt. 1|MRS Montessori Pt. 1]]
|AltDate=
|Aux2=
|ShortSummary=Still reeling from the events in Denver, Pest Control and newly minted Hunter Jamie Jesigo make their way to a M.R.S. facility in the Nevada desert. Keely makes it big. Henrietta gets a little stuck. Maggie makes a friend. Jamie finds a clue.
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=10
|Title=[[Fate 10: MRS Montessori Pt. 2|MRS Montessori Pt. 2]]
|AltDate=
|Aux2=
|ShortSummary=Pest Control hurtles towards a confrontation with dark forces at the M.R.S. school, but the weight of the secrets hiding in the shadows threatens to crush them. Keely reads an unexpected letter. Henrietta buys some property. Maggie and Jamie learn they’re not alone in the dark.
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=11
|Title=[[Fate 11: MRS Montessori Pt. 3|MRS Montessori Pt. 3]]
|AltDate=
|Aux2=
|ShortSummary=Separated and desperate, the Hunters pushes themselves to their limits to rid the M.R.S. Montessori school of the evil within. But there are more lives at stake than their own, and one wrong move can lead to devastating consequences. Keely pushes past her limits. Henrietta learns an uncomfortable truth. Jamie makes a life-altering choice. Maggie gets a blast from the past.
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=12
|Title=[[Fate 12:Vacation pt.1|Vacation pt.1]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=13
|Title=[[Fate 13:Vacation pt.2|Vacation pt.2]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=14
|Title=[[Fate 14:Vacation pt.3|Vacation pt.3]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=15
|Title=[[Fate 15:Vacation pt.4|Vacation pt.4]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
}}
==Notes==
{{reflist|group=note}}
{{Marielda episodes}}
{{NavboxMarielda}}
[[Category:Marielda]]
[[Category:Lists of episodes]]
c7fa348b98e8bb6d39920b0a81e129a27c63c684
Monster of the Week
0
49
89
2024-01-03T21:55:00Z
Laggardson
2
Created page with "'''Monster of the Week''' is a tabletop game that uses the “Powered By The Apocalypse” system. It was created by Michael Sands, and published by Evil Hat Productions."
wikitext
text/x-wiki
'''Monster of the Week''' is a tabletop game that uses the “Powered By The Apocalypse” system.
It was created by Michael Sands, and published by Evil Hat Productions.
833f9faa46de9fa26d289abd927021e9b4de2fe8
William White
0
12
90
42
2024-01-03T21:59:46Z
Laggardson
2
wikitext
text/x-wiki
'''William White''' is a cast member on ''Pest Control''. They also mix the audio for the show, and create original music alongside [[Jonas Newhouse]]. They are also in the band “glass beach”.
== Characters ==
=== Main Seasons ===
{| class="wikitable"
|-
! style="background-color:#FDCE5E" |Season
! style="background-color:#FDCE5E" |Role(s)
|-
|[[Fate]]
|[[Keeley Stewart]]
|-
| rowspan="5" |''[[Norfork]]''
|[[Kelly Aberdeen]]
|-
| [[Nort Port]] <ref name= “:1”> [[S2 E10|Kingdom #1]] </ref>, [[Liz Borger]] <ref name= “:1”> [[S2 E10|Kingdom #1]] </ref>,[[Jillian Murphy]] <ref name= “:2”> [[S2 E19|Kingdom #2]] </ref>, [[Leilah Amund]] <ref name= “:2”> [[S2 E19|Kingdom #2]] </ref>
|}
==Trivia==
{{Cast}}
[[Category:Cast]]
3be8882199080506588a6bca712dff6563f6fb29
Keeley Stewart
0
50
91
2024-01-03T22:02:23Z
Laggardson
2
Created page with "{{Infobox Character |color_theme = |title = Keeley Stewart |playbook = The Expert |player = [[William White]] |aliases = |season = ''[[Fate]]'' |pronouns = she/her |game = [[Monster of the Week]] |caption1 = test of caption |debut = [[Fate 01: The Dirge Pt. 1]] }}"
wikitext
text/x-wiki
{{Infobox Character
|color_theme =
|title = Keeley Stewart
|playbook = The Expert
|player = [[William White]]
|aliases =
|season = ''[[Fate]]''
|pronouns = she/her
|game = [[Monster of the Week]]
|caption1 = test of caption
|debut = [[Fate 01: The Dirge Pt. 1]]
}}
22afb5a17fb237abf4d80a24bb8ffa53a969cfa4
92
91
2024-01-03T22:06:18Z
Laggardson
2
wikitext
text/x-wiki
{{Infobox Character
|color_theme =
|title = Keeley Stewart
|playbook = The Expert
|player = [[William White]]
|aliases =
|season = ''[[Fate]]''
|pronouns = she/her
|game = [[Monster of the Week]]
|caption1 = test of caption
|debut = [[Fate 01: The Dirge Pt. 1|The Dirge Pt. 1]]
}}
ee4af94c66d601c188cf31d829dccea9805c1722
97
92
2024-01-03T22:26:38Z
Laggardson
2
wikitext
text/x-wiki
{{Infobox Character
|color_theme =
|title = Keeley Stewart
|playbook = The Expert
|player = [[William White]]
|aliases =
|season = ''[[Fate]]''
|pronouns = she/her
|game = [[Monster of the Week]]
|caption1 = test of caption
|debut = [[Fate 01: The Dirge Pt. 1|The Dirge Pt. 1]]
}}
{{Category:Fate characters}}
9d27b4aab4c9791790fd5c8e8670f8fe1246d4d9
Martin Graves
0
51
93
2024-01-03T22:16:21Z
Laggardson
2
Created page with "{{Infobox Character |color_theme = |title = Martin Graves |people = Human |affiliations = |relations = |status = dead |season = ''[[Fate]]'' |pronouns = he/him |image1 = |caption1 = |titles = The Chosen One }} {{Quote|Oh shit.|author=Martin Graves|source=[[Fate 01: The Dirge Pt. 1|The Dirge Pt. 1]]}} '''Martin Graves''' is a human Chosen One who travelled with Pest Control. ==Appearance== ==Personality== ==History and Involvement== ==References== <references..."
wikitext
text/x-wiki
{{Infobox Character
|color_theme =
|title = Martin Graves
|people = Human
|affiliations =
|relations =
|status = dead
|season = ''[[Fate]]''
|pronouns = he/him
|image1 =
|caption1 =
|titles = The Chosen One
}}
{{Quote|Oh shit.|author=Martin Graves|source=[[Fate 01: The Dirge Pt. 1|The Dirge Pt. 1]]}}
'''Martin Graves''' is a human Chosen One who travelled with Pest Control.
==Appearance==
==Personality==
==History and Involvement==
==References==
<references />
{{NavboxFate}}
[[Category:Fate characters]]
7798cdbc2e1d6550c556a6c9fa49b2a8d943bb82
94
93
2024-01-03T22:16:49Z
Laggardson
2
/* Background */
wikitext
text/x-wiki
{{Infobox Character
|color_theme =
|title = Martin Graves
|people = Human
|affiliations =
|relations =
|status = dead
|season = ''[[Fate]]''
|pronouns = he/him
|image1 =
|caption1 =
|titles = The Chosen One
}}
{{Quote|Oh shit.|author=Martin Graves|source=[[Fate 01: The Dirge Pt. 1|The Dirge Pt. 1]]}}
'''Martin Graves''' is a human Chosen One who travelled with Pest Control.
==Appearance==
==Personality==
==Background==
==References==
<references />
{{NavboxFate}}
[[Category:Fate characters]]
f8274ce83228c90d5e9a6a41dfd909e05cd30f94
96
94
2024-01-03T22:25:40Z
Laggardson
2
wikitext
text/x-wiki
{{Infobox Character
|color_theme =
|title = Martin Graves
|people = Human
|affiliations =
|relations =
|status = dead
|season = ''[[Fate]]''
|pronouns = he/him
|image1 =
|caption1 =
|titles = The Chosen One
}}
{{Quote
|Oh shit.
|author=Martin Graves
|source=[[Fate 01: The Dirge Pt. 1|The Dirge Pt. 1]]}}
'''Martin Graves''' is a human Chosen One who travelled with Pest Control.
==Appearance==
==Personality==
==Background==
==References==
<references />
{{NavboxFate}}
[[Category:Fate characters]]
247f20ed91ef10c6a743445d651e00fa7c7e8fba
Template:Quote
10
52
95
2024-01-03T22:24:13Z
Laggardson
2
Created page with "<onlyinclude><div style="margin: 0 1.5em; overflow:auto"><div style="display:flex"> <div><p><span style="font-family: Arbutus Slab, serif; font-size: 1.25em; font-weight:bold; margin-right:3px;">“</span></p></div><div><poem>{{#if: {{{1|}}} | {{{1}}} | {{#if: {{{quote|}}} | {{{quote}}} | Quote here}} }}<span style="font-family: Arbutus Slab, serif; font-weight:bold; font-size: 1.25em; line-height:1em; margin-left:2px">”</span></poem></div> </div>{{#if: {{{2|}}}{{{3|}}..."
wikitext
text/x-wiki
<onlyinclude><div style="margin: 0 1.5em; overflow:auto"><div style="display:flex">
<div><p><span style="font-family: Arbutus Slab, serif; font-size: 1.25em; font-weight:bold; margin-right:3px;">“</span></p></div><div><poem>{{#if: {{{1|}}} | {{{1}}} | {{#if: {{{quote|}}} | {{{quote}}} | Quote here}} }}<span style="font-family: Arbutus Slab, serif; font-weight:bold; font-size: 1.25em; line-height:1em; margin-left:2px">”</span></poem></div>
</div>{{#if: {{{2|}}}{{{3|}}}{{{author|}}}{{{source|}}} | <div style="text-align:right; font-size:smaller"><cite style="font-style:normal">– {{#if: {{{2|}}}{{{author|}}} | {{#if:{{{2|}}}|{{{2}}}|{{{author}}}}}}}{{#if:{{{3|}}}{{{source|}}}|{{#if:{{{2|}}}{{{author|}}}|, }}{{#if:{{{3|}}}| {{{3}}}| {{{source}}} }} }}</cite></div>}}</div></onlyinclude>
<noinclude>
{{Documentation}}
[[Category:Templates]]
</noinclude>
a479b5dd87c165358a47ed2ea924c337d80fe5d3
Fate
0
8
98
25
2024-01-03T22:29:48Z
Laggardson
2
wikitext
text/x-wiki
{{Infobox season
|color_theme=FF0000
|title=Season 1: Fate
|image=[[]]
|caption=Cover art by [https://twitter.com/shoddyrobot Craig Sheldon]
|episodes=15
|release=March 24, 2019 - December 3, 2019
}}
'''''Fate''''' (originally known as '''''Queuetimes: Monster of the Week''''') is the first season of ''Pest Control''. It is a game of ''[[Monster of the Week]]''. The first episode was released on [[AltHaven]] on March 24, 2019.
It follows a group of found-family monster Hunters as they set off on a journey across the United States, dealing with the creatures they encounter and drawing ever nearer to the end of the road...
== Episodes ==
↳ [[List of Fate episodes]]
== Characters ==
=== Player Characters ===
*[[Keeley Stewart]] ([[William White]]): The Expert.
*[[Henrietta Salm]] ([[Jonas Newhouse]]): The Monstrous.
*[[Maggie]] ([[Sam Darr]]): The Spellslinger.
=== Major NPCs ===
''See also'': [[:Category:Fate characters|Fate characters]]
*[[Martin Graves|'''Martin Graves''']]: Chosen One who travels with Pest Control
*[[Henry Sweezle|'''Henry Sweezle''']]: Antagonist and member of [[VaccuCon]].
*[[Jordan "Jojo" Jesigo|'''Jordan "Jojo" Jesigo''']]:
*'''[[Xilin]]''': [[Myriad]] and member of [[Myriad Relocation Services|M.R.S.]]
== Notes==
<references group="note" />
{{Fate episodes}}
<p></p>
{{Seasons}}
{{Navbox}}
[[Category:Fate]]
[[Category:Monster of the Week]]
[[Category:Seasons]]
4ec25d374b188d36bc47130e2975680ccb388036
Henrietta Salm
0
53
99
2024-01-03T22:32:16Z
Laggardson
2
Created page with "{{Infobox Character |color_theme = |title = Henrietta Salm |playbook = The Monstrous |place_of_origin = The Sea |player = [[Jonas Newhouse]] |image1 = [[File:Kelly_Aberdeen.png]] |aliases = |season = ''[[Fate]]'' |pronouns = she/her |game = [[Monster of the Week]] |caption1 = test of caption |debut = [[Fate 01: The Dirge Pt. 1|The Dirge Pt. 1]] }}"
wikitext
text/x-wiki
{{Infobox Character
|color_theme =
|title = Henrietta Salm
|playbook = The Monstrous
|place_of_origin = The Sea
|player = [[Jonas Newhouse]]
|image1 = [[File:Kelly_Aberdeen.png]]
|aliases =
|season = ''[[Fate]]''
|pronouns = she/her
|game = [[Monster of the Week]]
|caption1 = test of caption
|debut = [[Fate 01: The Dirge Pt. 1|The Dirge Pt. 1]]
}}
ccb596a650204962c321303848766ba1696effcc
Rabbit Moon
0
54
100
2024-01-03T22:44:01Z
Laggardson
2
Created page with "{{Infobox Character |color_theme = |title = Rabbit Moon |playbook = The Shapechanger (custom) |place_of_origin = [[Norfork (City)|Norfork]] |player = [[Jonas Newhouse]] |image1 = [[File:Rabbit_Moon.png]] |aliases = Sage Brennan-Schipp, Barley Porter, The Jackalope, The Gardener |season = ''[[Norfork]]'' |pronouns = he/they |game = [[Monster of the Week]] |caption1 = test of caption |debut = [[Norfork 01: Messages]] }}"
wikitext
text/x-wiki
{{Infobox Character
|color_theme =
|title = Rabbit Moon
|playbook = The Shapechanger (custom)
|place_of_origin = [[Norfork (City)|Norfork]]
|player = [[Jonas Newhouse]]
|image1 = [[File:Rabbit_Moon.png]]
|aliases = Sage Brennan-Schipp, Barley Porter, The Jackalope, The Gardener
|season = ''[[Norfork]]''
|pronouns = he/they
|game = [[Monster of the Week]]
|caption1 = test of caption
|debut = [[Norfork 01: Messages]]
}}
0ec10de39e4e8bbd0ede60ba26881a52fb83c58b
Kelly Aberdeen
0
17
101
65
2024-01-03T22:46:07Z
Laggardson
2
/* References */
wikitext
text/x-wiki
{{Infobox Character
|color_theme =
|title = Kelly Aberdeen
|playbook = The Crooked
|place_of_origin = [[Norfork (City)|Norfork]]
|player = [[William White]]
|image1 = [[File:Kelly_Aberdeen.png]]
|aliases = The Cryptid
|season = ''[[Norfork]]''
|pronouns = he/him
|game = [[Monster of the Week]]
|caption1 = test of caption
|debut = [[Norfork 01: Messages]]
}}
== Appearance ==
== Personality ==
== Background ==
== Abilities ==
'''Burglar'''. When you break into a secure location, roll +Sharp. On a 10+ pick three, on a 7-9 pick two: you get in undetected, you get out undetected, you don’t leave a mess, you find what you were after.
'''Deal with the Devil''': You sold your soul to the Devil. Pick one or two things you got out of the deal: wealth, fame, youth, sensual gratification, skill (add +1 to two ratings). Payment is due either when you die, in six months (if you picked two things) or otherwise in a year.
'''Guardian''': You have a mystical ally (perhaps a spirit, alien, or cryptid) who helps and defends you. Define them, and their powers, with the Keeper’s agreement. Their look is one of: invisible, an intangible spirit thing, a weird creature, disguised as an animal, or disguised as a person.
=== Advancements ===
'''+1 Sharp''' (episode)
'''Precise Strike'''. When you inflict harm on a monster, you can aim for a weak spot. Roll +Tough. On a 10+ you inflict +2 harm. On a 7-9 you inflict +1 harm.On a miss, you leave yourself open to the monster. (episode)
'''Devastating'''. When you inflict harm, you may inflict +1 harm. (Ep17)
'''Crew'''. You have a regular crew, a team of three or four people who will help you out with pretty much anything. They count as a team. (Ep20)
==Gallery==
[[File:Kelly_Aberdeen.png|200px|thumb|left|Caption]]
== Notes ==
{{Reflist|group=note}}
== References ==
{{Reflist}}
[[Category:PCs]]
[[Category:Norfork characters]]
d64fe3f6ef653be08371b9e570995ad886bff7aa
Rabbit Moon
0
54
102
100
2024-01-03T22:48:33Z
Laggardson
2
wikitext
text/x-wiki
{{Infobox Character
|color_theme =
|title = Rabbit Moon
|playbook = The Shapechanger (custom)
|place_of_origin = [[Norfork (City)|Norfork]]
|player = [[Jonas Newhouse]]
|image1 = [[File:Rabbit_Moon.png]]
|aliases = Sage Brennan-Schipp, Barley Porter, The Jackalope, The Gardener
|season = ''[[Norfork]]''
|pronouns = he/they
|game = [[Monster of the Week]]
|caption1 = test of caption
|debut = [[Norfork 01: Messages]]
}}
===Appearance===
===Personality===
===Background===
===Abilities===
===Gallery===
===Notes===
===References===
f14e83f203d0862566d9769fc19801e06a3158e0
103
102
2024-01-03T22:48:52Z
Laggardson
2
/* Appearance */
wikitext
text/x-wiki
{{Infobox Character
|color_theme =
|title = Rabbit Moon
|playbook = The Shapechanger (custom)
|place_of_origin = [[Norfork (City)|Norfork]]
|player = [[Jonas Newhouse]]
|image1 = [[File:Rabbit_Moon.png]]
|aliases = Sage Brennan-Schipp, Barley Porter, The Jackalope, The Gardener
|season = ''[[Norfork]]''
|pronouns = he/they
|game = [[Monster of the Week]]
|caption1 = test of caption
|debut = [[Norfork 01: Messages]]
}}
==Appearance==
===Personality===
===Background===
===Abilities===
===Gallery===
===Notes===
===References===
6b29b887237f30c7914527836fdd72c91a76b7cb
104
103
2024-01-03T22:49:04Z
Laggardson
2
wikitext
text/x-wiki
{{Infobox Character
|color_theme =
|title = Rabbit Moon
|playbook = The Shapechanger (custom)
|place_of_origin = [[Norfork (City)|Norfork]]
|player = [[Jonas Newhouse]]
|image1 = [[File:Rabbit_Moon.png]]
|aliases = Sage Brennan-Schipp, Barley Porter, The Jackalope, The Gardener
|season = ''[[Norfork]]''
|pronouns = he/they
|game = [[Monster of the Week]]
|caption1 = test of caption
|debut = [[Norfork 01: Messages]]
}}
==Appearance==
==Personality==
===Background===
===Abilities===
===Gallery===
===Notes===
===References===
7ba9c62587e90ace38d4cf13f8352c77214c1564
105
104
2024-01-03T22:49:16Z
Laggardson
2
wikitext
text/x-wiki
{{Infobox Character
|color_theme =
|title = Rabbit Moon
|playbook = The Shapechanger (custom)
|place_of_origin = [[Norfork (City)|Norfork]]
|player = [[Jonas Newhouse]]
|image1 = [[File:Rabbit_Moon.png]]
|aliases = Sage Brennan-Schipp, Barley Porter, The Jackalope, The Gardener
|season = ''[[Norfork]]''
|pronouns = he/they
|game = [[Monster of the Week]]
|caption1 = test of caption
|debut = [[Norfork 01: Messages]]
}}
==Appearance==
==Personality==
==Background==
===Abilities===
===Gallery===
===Notes===
===References===
7a76ff736bc81dedaf9d9f8d64d0763b7fa03c66
106
105
2024-01-03T22:49:28Z
Laggardson
2
wikitext
text/x-wiki
{{Infobox Character
|color_theme =
|title = Rabbit Moon
|playbook = The Shapechanger (custom)
|place_of_origin = [[Norfork (City)|Norfork]]
|player = [[Jonas Newhouse]]
|image1 = [[File:Rabbit_Moon.png]]
|aliases = Sage Brennan-Schipp, Barley Porter, The Jackalope, The Gardener
|season = ''[[Norfork]]''
|pronouns = he/they
|game = [[Monster of the Week]]
|caption1 = test of caption
|debut = [[Norfork 01: Messages]]
}}
==Appearance==
==Personality==
==Background==
==Abilities==
===Gallery===
===Notes===
===References===
501dd8cf865e3bd30d656ac4353dd3f8751f8369
107
106
2024-01-03T22:49:41Z
Laggardson
2
/* Gallery */
wikitext
text/x-wiki
{{Infobox Character
|color_theme =
|title = Rabbit Moon
|playbook = The Shapechanger (custom)
|place_of_origin = [[Norfork (City)|Norfork]]
|player = [[Jonas Newhouse]]
|image1 = [[File:Rabbit_Moon.png]]
|aliases = Sage Brennan-Schipp, Barley Porter, The Jackalope, The Gardener
|season = ''[[Norfork]]''
|pronouns = he/they
|game = [[Monster of the Week]]
|caption1 = test of caption
|debut = [[Norfork 01: Messages]]
}}
==Appearance==
==Personality==
==Background==
==Abilities==
==Gallery==
===Notes===
===References===
0d8bd14c25905396a055ec969b37bd99d52db38b
108
107
2024-01-03T22:49:53Z
Laggardson
2
/* Notes */
wikitext
text/x-wiki
{{Infobox Character
|color_theme =
|title = Rabbit Moon
|playbook = The Shapechanger (custom)
|place_of_origin = [[Norfork (City)|Norfork]]
|player = [[Jonas Newhouse]]
|image1 = [[File:Rabbit_Moon.png]]
|aliases = Sage Brennan-Schipp, Barley Porter, The Jackalope, The Gardener
|season = ''[[Norfork]]''
|pronouns = he/they
|game = [[Monster of the Week]]
|caption1 = test of caption
|debut = [[Norfork 01: Messages]]
}}
==Appearance==
==Personality==
==Background==
==Abilities==
==Gallery==
==Notes==
===References===
a03d528a4ef62a77c6d93b84cd015f5713cb420e
109
108
2024-01-03T22:50:04Z
Laggardson
2
wikitext
text/x-wiki
{{Infobox Character
|color_theme =
|title = Rabbit Moon
|playbook = The Shapechanger (custom)
|place_of_origin = [[Norfork (City)|Norfork]]
|player = [[Jonas Newhouse]]
|image1 = [[File:Rabbit_Moon.png]]
|aliases = Sage Brennan-Schipp, Barley Porter, The Jackalope, The Gardener
|season = ''[[Norfork]]''
|pronouns = he/they
|game = [[Monster of the Week]]
|caption1 = test of caption
|debut = [[Norfork 01: Messages]]
}}
==Appearance==
==Personality==
==Background==
==Abilities==
==Gallery==
==Notes==
==References==
12fe2d6256b2da3562b61616505a3e986fa0d528
110
109
2024-01-03T22:51:56Z
Laggardson
2
/* Gallery */
wikitext
text/x-wiki
{{Infobox Character
|color_theme =
|title = Rabbit Moon
|playbook = The Shapechanger (custom)
|place_of_origin = [[Norfork (City)|Norfork]]
|player = [[Jonas Newhouse]]
|image1 = [[File:Rabbit_Moon.png]]
|aliases = Sage Brennan-Schipp, Barley Porter, The Jackalope, The Gardener
|season = ''[[Norfork]]''
|pronouns = he/they
|game = [[Monster of the Week]]
|caption1 = test of caption
|debut = [[Norfork 01: Messages]]
}}
==Appearance==
==Personality==
==Background==
==Abilities==
==Gallery==
[[File:Rabbit_Moon.png|200px|thumb|left|Caption]]
==Notes==
==References==
eed8e4971357c4a9d388111be75f0905cbcd2a77
111
110
2024-01-03T22:59:24Z
Laggardson
2
wikitext
text/x-wiki
{{Infobox Character
|color_theme =
|title = Rabbit Moon
|playbook = The Shapechanger (custom)
|place_of_origin = [[Norfork (City)|Norfork]]
|player = [[Jonas Newhouse]]
|image1 = [[File:Rabbit_Moon.png]]
|aliases = Sage Brennan-Schipp, Barley Porter, The Jackalope, The Gardener
|season = ''[[Norfork]]''
|pronouns = he/they
|game = [[Monster of the Week]]
|caption1 = test of caption
|debut = [[Norfork 01: Messages]]
}}
==Appearance==
==Personality==
==Background==
==Abilities==
'''That was Me!''' Define a Homeground (neighborhood, town, city, other) and a Timeline (1 year, 2 years, 5 years, 10 years, eternity, other) with the Keeper. As long as you are talking to someone living in your Homeground during your Timeline, you may reveal to them that you used to know them - just not in this form. When you do, roll +Sharp.
On a 10+ they remember you. They’ll do you one favor as long as it doesn’t put them in harms way, no ques- tions asked.
On a 7-9 you left on strange terms. The Keeper picks one of the following.
On a miss they don’t remember you, or you are mistaken - they’ll think something is off about you, and maybe even that you’re dangerous.
• They want an apology from you for something you did.
• You have something of theirs, and they want it back before they’ll help you.
• They want a favor in return.
• They’ll only do the easiest part of what you asked, leaving the rest up to you.
'''They’re All Me.''' Define three starting Appearances with the Keeper. You can become all three at any time, but the transformation is slow and unseemly. If you try to transform rapidly roll +Cool.
On a 10+, you do it no problem.
On a 7-9, pick two from the list below - the others are false.
On a miss, something goes wrong.
• Your Appearance looks perfect.
• Your voice is exactly right.
• You keep all of your fluids in.
• You don’t take any harm.
'''Unstable Form.''' When you try to become a form other than your Appearances, roll +Cool.
On a 10+, you can maintain the form for up to 48 hours, but pick one option from the 7-9 list for “They’re All Me” - the rest are false. After 48 hours, you’ll need to revert to one of your Appearances and rest, no matter what.
On a 7-9, you have minutes or seconds in this form - make them count.
On a miss, you’re not who you intended to be. The Keeper will tell you who you are, and for how long (up to 48 hours).
'''Defined By Connection.''' When you make a genuine emotional connection with a Hunter or NPC you haven’t used “That Was Me!” on, mark Experience.
==Gallery==
[[File:Rabbit_Moon.png|200px|thumb|left|Caption]]
==Notes==
==References==
ee2c211b7e7db4dd1cc9e7e08377fa2eab7fe48f
Nammi
0
55
112
2024-01-04T03:26:20Z
Laggardson
2
Created page with "{{Infobox Character |color_theme = |title = Nammi |playbook = The Divine |place_of_origin = [[The Garden]] |player = [[Sam Darr]] |image1 = [[]] |aliases = |season = ''[[Norfork]]'' |pronouns = she/her |game = [[Monster of the Week]] |caption1 = test of caption |debut = [[Norfork 01: Messages]] }}"
wikitext
text/x-wiki
{{Infobox Character
|color_theme =
|title = Nammi
|playbook = The Divine
|place_of_origin = [[The Garden]]
|player = [[Sam Darr]]
|image1 = [[]]
|aliases =
|season = ''[[Norfork]]''
|pronouns = she/her
|game = [[Monster of the Week]]
|caption1 = test of caption
|debut = [[Norfork 01: Messages]]
}}
4ec258c38a48eeffe8c0bc68c8a2c7371a3cfafb
118
112
2024-01-04T03:52:45Z
Laggardson
2
wikitext
text/x-wiki
{{Infobox Character
|color_theme =
|title = Nammi
|playbook = The Divine
|place_of_origin = [[The Garden]]
|player = [[Sam Darr]]
|image1 = [[]]
|aliases =
|season = ''[[Norfork]]''
|pronouns = she/her
|game = [[Monster of the Week]]
|caption1 = test of caption
|debut = [[Norfork 01: Messages]]
}}
==Appearance==
==Personality==
==Background==
==Abilities==
==Gallery==
==Notes==
==Reference==
{{Category:Norfork characters}}
{{Category:PCs}}
c8e9dfc0dac6460977ed001a3dadc87ec5134a2a
Fate
0
8
113
98
2024-01-04T03:27:11Z
Laggardson
2
/* Player Characters */
wikitext
text/x-wiki
{{Infobox season
|color_theme=FF0000
|title=Season 1: Fate
|image=[[]]
|caption=Cover art by [https://twitter.com/shoddyrobot Craig Sheldon]
|episodes=15
|release=March 24, 2019 - December 3, 2019
}}
'''''Fate''''' (originally known as '''''Queuetimes: Monster of the Week''''') is the first season of ''Pest Control''. It is a game of ''[[Monster of the Week]]''. The first episode was released on [[AltHaven]] on March 24, 2019.
It follows a group of found-family monster Hunters as they set off on a journey across the United States, dealing with the creatures they encounter and drawing ever nearer to the end of the road...
== Episodes ==
↳ [[List of Fate episodes]]
== Characters ==
=== Player Characters ===
*[[Keeley Stewart]] ([[William White]]): The Expert.
*[[Henrietta Salm]] ([[Jonas Newhouse]]): The Monstrous.
*[[Maggie Thornback]] ([[Sam Darr]]): The Spellslinger.
=== Major NPCs ===
''See also'': [[:Category:Fate characters|Fate characters]]
*[[Martin Graves|'''Martin Graves''']]: Chosen One who travels with Pest Control
*[[Henry Sweezle|'''Henry Sweezle''']]: Antagonist and member of [[VaccuCon]].
*[[Jordan "Jojo" Jesigo|'''Jordan "Jojo" Jesigo''']]:
*'''[[Xilin]]''': [[Myriad]] and member of [[Myriad Relocation Services|M.R.S.]]
== Notes==
<references group="note" />
{{Fate episodes}}
<p></p>
{{Seasons}}
{{Navbox}}
[[Category:Fate]]
[[Category:Monster of the Week]]
[[Category:Seasons]]
971de3b70d2009f088e518dd84050c6dffc6125e
135
113
2024-01-04T18:48:28Z
Laggardson
2
wikitext
text/x-wiki
{{Infobox season
|color_theme=FF0000
|title=Season 1: Fate
|image=[[]]
|caption=Cover art by [https://twitter.com/shoddyrobot Craig Sheldon]
|episodes=15
|release=March 24, 2019 - December 3, 2019
}}
'''''Fate''''' (originally known as '''''Queuetimes: Monster of the Week''''') is the first season of ''Pest Control''. It is a game of ''[[Monster of the Week]]''. The first episode was released on [[AltHaven]] on March 24, 2019.
It follows a group of found-family monster Hunters as they set off on a journey across the United States, dealing with the creatures they encounter and drawing ever nearer to the end of the road...
The season consists of five arcs which are each set in a different location: The Dirge, Geringer, Silky & The Solutions (Denver, CO), M.R.S. Montessori (Nevada), and Vacation (California).
== Episodes ==
↳ [[List of Fate episodes]]
== Characters ==
=== Player Characters ===
*[[Keeley Stewart]] ([[William White]]): The Expert.
*[[Henrietta Salm]] ([[Jonas Newhouse]]): The Monstrous.
*[[Maggie Thornback]] ([[Sam Darr]]): The Spellslinger.
=== Major NPCs ===
''See also'': [[:Category:Fate characters|Fate characters]]
*[[Martin Graves|'''Martin Graves''']]: Chosen One who travels with Pest Control
*[[Henry Sweezle|'''Henry Sweezle''']]: Antagonist and member of [[VaccuCon]].
*[[Jordan "Jojo" Jesigo|'''Jordan "Jojo" Jesigo''']]:
*'''[[Xilin]]''': [[Myriad]] and member of [[Myriad Relocation Services|M.R.S.]]
==Gallery==
== Notes==
<references group="note" />
{{Fate episodes}}
<p></p>
{{Seasons}}
{{Navbox}}
[[Category:Fate]]
[[Category:Monster of the Week]]
[[Category:Seasons]]
4db9ec685c712b0be856dcd8e0ab0d64d4bcb2ff
Norfork
0
23
114
50
2024-01-04T03:28:11Z
Laggardson
2
wikitext
text/x-wiki
''(For the town itself, see ''[[Norfork (location)|Norfork]]'')''
{{Infobox season
|color_theme=FF0000
|title=Season 2: Norfork
|image=[[]]
|caption=Cover art by [https://twitter.com/shoddyrobot Craig Sheldon]
|episodes=27
|release=October 30, 2022 - present
}}
'''''Norfork''''' is the second season of ''Pest Control''. It primarily uses the ''[[Monster of the Week]]'' system, while also making forays into other games. The first episode was released on October 30th, 2022.
It follows a trio of friends living in the edge-city of Norfork as it adapts to the open presence of [[Myriad|Myriads]] and the encroachment of [[The City]].
== Episodes ==
↳ [[List of Norfork episodes]]
dfed84c4192d8ee2d8bf69fd06c9519b49cdddf3
115
114
2024-01-04T03:30:05Z
Laggardson
2
wikitext
text/x-wiki
''(For the town itself, see ''[[Norfork (location)|Norfork]]'')''
{{Infobox season
|color_theme=FF0000
|title=Season 2: Norfork
|image=[[]]
|caption=Cover art by [https://twitter.com/shoddyrobot Craig Sheldon]
|episodes=27
|release=October 30, 2022 - present
}}
'''''Norfork''''' is the second season of ''Pest Control''. It primarily uses the ''[[Monster of the Week]]'' system, while also making forays into other games. The first episode was released on October 30th, 2022.
It follows a trio of friends living in the edge-city of Norfork as it adapts to the open presence of [[Myriad|Myriads]] and the encroachment of [[The City]].
== Episodes ==
↳ [[List of Norfork episodes]]
== Characters ==
=== Player Characters ===
*[[Keeley Stewart]] ([[William White]]): The Expert.
*[[Henrietta Salm]] ([[Jonas Newhouse]]): The Monstrous.
*[[Maggie Thornback]] ([[Sam Darr]]): The Spellslinger.
=== Major NPCs ===
''See also'': [[:Category:Fate characters|Fate characters]]
*[[Butch|'''Butch''']]:
*[[Cold Moon|'''Cold Moon''']]:
*[[Jordan "Jojo" Jesigo|'''Jordan "Jojo" Jesigo''']]:
*'''[[
f5e565d03d115d8cf749b4e0cdd40e24459dc760
116
115
2024-01-04T03:38:22Z
Laggardson
2
/* Player Characters */
wikitext
text/x-wiki
''(For the town itself, see ''[[Norfork (location)|Norfork]]'')''
{{Infobox season
|color_theme=FF0000
|title=Season 2: Norfork
|image=[[]]
|caption=Cover art by [https://twitter.com/shoddyrobot Craig Sheldon]
|episodes=27
|release=October 30, 2022 - present
}}
'''''Norfork''''' is the second season of ''Pest Control''. It primarily uses the ''[[Monster of the Week]]'' system, while also making forays into other games. The first episode was released on October 30th, 2022.
It follows a trio of friends living in the edge-city of Norfork as it adapts to the open presence of [[Myriad|Myriads]] and the encroachment of [[The City]].
== Episodes ==
↳ [[List of Norfork episodes]]
== Characters ==
=== Player Characters ===
*[[Kelly Aberdeen]] ([[William White]]): The Crooked.
*[[Rabbit Moon]] ([[Jonas Newhouse]]): The Shapechanger.
*[[Nammi]] ([[Sam Darr]]): The Divine.
=== Major NPCs ===
''See also'': [[:Category:Fate characters|Fate characters]]
*[[Butch|'''Butch''']]:
*[[Cold Moon|'''Cold Moon''']]:
*[[Jordan "Jojo" Jesigo|'''Jordan "Jojo" Jesigo''']]:
*'''[[
fc22a1c976553dd990cffd4cb50862420f248a44
117
116
2024-01-04T03:41:25Z
Laggardson
2
/* Major NPCs */
wikitext
text/x-wiki
''(For the town itself, see ''[[Norfork (location)|Norfork]]'')''
{{Infobox season
|color_theme=FF0000
|title=Season 2: Norfork
|image=[[]]
|caption=Cover art by [https://twitter.com/shoddyrobot Craig Sheldon]
|episodes=27
|release=October 30, 2022 - present
}}
'''''Norfork''''' is the second season of ''Pest Control''. It primarily uses the ''[[Monster of the Week]]'' system, while also making forays into other games. The first episode was released on October 30th, 2022.
It follows a trio of friends living in the edge-city of Norfork as it adapts to the open presence of [[Myriad|Myriads]] and the encroachment of [[The City]].
== Episodes ==
↳ [[List of Norfork episodes]]
== Characters ==
=== Player Characters ===
*[[Kelly Aberdeen]] ([[William White]]): The Crooked.
*[[Rabbit Moon]] ([[Jonas Newhouse]]): The Shapechanger.
*[[Nammi]] ([[Sam Darr]]): The Divine.
=== Major NPCs ===
''See also'': [[:Category:Norfork characters|Norfork characters]]
*[[Butch|'''Butch''']]: Shadow that protects Kelly.
*[[Cold Moon|'''Cold Moon''']]: Leader of the [[Lunar Coven]].
*[[Almos Sumati|'''Almos Sumati''']]: Werewolf lawyer from Norfork.
*[[Valentina|'''Valentina''']]: Leader of the [[Agents of Dranja]].
96663a4c996bdf074bf22c10368bcf242b9ec817
125
117
2024-01-04T04:35:40Z
Laggardson
2
/* Major NPCs */
wikitext
text/x-wiki
''(For the town itself, see ''[[Norfork (location)|Norfork]]'')''
{{Infobox season
|color_theme=FF0000
|title=Season 2: Norfork
|image=[[]]
|caption=Cover art by [https://twitter.com/shoddyrobot Craig Sheldon]
|episodes=27
|release=October 30, 2022 - present
}}
'''''Norfork''''' is the second season of ''Pest Control''. It primarily uses the ''[[Monster of the Week]]'' system, while also making forays into other games. The first episode was released on October 30th, 2022.
It follows a trio of friends living in the edge-city of Norfork as it adapts to the open presence of [[Myriad|Myriads]] and the encroachment of [[The City]].
== Episodes ==
↳ [[List of Norfork episodes]]
== Characters ==
=== Player Characters ===
*[[Kelly Aberdeen]] ([[William White]]): The Crooked.
*[[Rabbit Moon]] ([[Jonas Newhouse]]): The Shapechanger.
*[[Nammi]] ([[Sam Darr]]): The Divine.
=== Major NPCs ===
''See also'': [[:Category:Norfork characters|Norfork characters]]
*[[Butch|'''Butch''']]: Shadow that protects Kelly.
*[[Rosa Kalyani|'''Cold Moon''']]: Leader of the [[Lunar Coven]].
*[[Almos Sumati|'''Almos Sumati''']]: Werewolf lawyer from Norfork.
*[[Valentina|'''Valentina''']]: Leader of the [[Agents of Dranja]].
*[[The Mothman|'''The Mothman''']]: A masked vigilante.
d12d9d4da2ef79ef80e3faa1dafc56871175b19e
136
125
2024-01-04T18:54:03Z
Laggardson
2
wikitext
text/x-wiki
''(For the town itself, see ''[[Norfork (location)|Norfork]]'')''
{{Infobox season
|color_theme=FF0000
|title=Season 2: Norfork
|image=[[]]
|caption=Cover art by [https://twitter.com/shoddyrobot Craig Sheldon]
|episodes=27
|release=October 30, 2022 - present
}}
'''''Norfork''''' is the second season of ''Pest Control''. It primarily uses the ''[[Monster of the Week]]'' system, while also making forays into other games. The first episode was released on October 30th, 2022.
It follows a trio of friends living in the edge-city of Norfork as it adapts to the open presence of [[Myriad|Myriads]] and the encroachment of [[The City]].
== Episodes ==
↳ [[List of Norfork episodes]]
== Characters ==
=== Player Characters ===
*[[Kelly Aberdeen]] ([[William White]]): The Crooked.
*[[Rabbit Moon]] ([[Jonas Newhouse]]): The Shapechanger.
*[[Nammi]] ([[Sam Darr]]): The Divine.
=== Major NPCs ===
''See also'': [[:Category:Norfork characters|Norfork characters]]
*[[Butch|'''Butch''']]: Shadow that protects Kelly.
*[[Rosa Kalyani|'''Cold Moon''']]: Leader of the [[Lunar Coven]].
*[[Almos Sumati|'''Almos Sumati''']]: Werewolf lawyer from Norfork.
*[[Valentina|'''Valentina''']]: Leader of the [[Agents of Dranja]].
*[[The Mothman|'''The Mothman''']]: A masked vigilante.
*[[Ace Aruna|'''Ace Aruna''']]: A vampire Myriad who needs the trio's help.
*[[Ripley Adams|'''Det. Ripley Adams''']]: A cop who has it out for Kelly.
*[[Carmichael|'''Carmichael''']]: A vampire that Kelly screwed over, who now means to collect.
*[[Glymmer|'''Glymmer''']]: A local influencer and [[Myriad]].
*[[Akito|'''Akito''']]: Nammi's former lover, and member of the [[Agents of Dranja]].
*[[Elio Amadi|'''Elio Amadi''']]: Local stage magician, children's entertainer, and [[Myriad]].
d70f32392ce9a741fd079dc33a1e5bb11f53379b
Maggie Thornback
0
56
119
2024-01-04T03:56:19Z
Laggardson
2
Created page with "{{Infobox Character |color_theme = |title = Maggie Thornback |playbook = The Spellslinger |place_of_origin = Unknown |player = [[Sam Darr]] |image1 = [[File:Kelly_Aberdeen.png]] |aliases = |season = ''[[Fate]]'' |pronouns = she/her |game = [[Monster of the Week]] |caption1 = test of caption |debut = [[Fate 01: The Dirge Pt. 1|The Dirge Pt. 1]] }}"
wikitext
text/x-wiki
{{Infobox Character
|color_theme =
|title = Maggie Thornback
|playbook = The Spellslinger
|place_of_origin = Unknown
|player = [[Sam Darr]]
|image1 = [[File:Kelly_Aberdeen.png]]
|aliases =
|season = ''[[Fate]]''
|pronouns = she/her
|game = [[Monster of the Week]]
|caption1 = test of caption
|debut = [[Fate 01: The Dirge Pt. 1|The Dirge Pt. 1]]
}}
b2b3d3adf8783cf28f6edd998cf646a7219acd98
120
119
2024-01-04T03:58:07Z
Laggardson
2
wikitext
text/x-wiki
{{Infobox Character
|color_theme =
|title = Maggie Thornback
|playbook = The Spellslinger
|place_of_origin = Unknown
|player = [[Sam Darr]]
|image1 = [[File:Kelly_Aberdeen.png]]
|aliases =
|season = ''[[Fate]]''
|pronouns = she/her
|game = [[Monster of the Week]]
|caption1 = test of caption
|debut = [[Fate 01: The Dirge Pt. 1|The Dirge Pt. 1]]
}}
==Appearance==
==Personality==
==Background==
==Abilities==
==Gallery==
==Notes==
==References==
0db0164fcef633b361f10416f9d4a5ebfe3c81b2
Lunar Coven
0
57
121
2024-01-04T04:20:11Z
Laggardson
2
Created page with "{{Infobox Group |color_theme=tm |title1 = Advent Group |members = [[Rosa Kalyani]] AKA Cold Moon [[Rabbit Moon]] [[Meg White]] AKA Wolf Moon [[Alek Darrling]] AKA Snow Moon [[Kaj Benedikt]] AKA Worm Moon [[Stela Hartley]] AKA Pink Moon [[Flora Vayu]] AKA Flower Moon [[Susanna Pinon]] AKA Strawberry Moon [[Buck Curt]] AKA Buck Moon [[Abilene Ellington]] AKA Sturgeon Moon [[Nieve Gardener]] AKA Corn Moon [[Tisi Casanuevo]] AKA Hunter Moon [[Helen Madura]] AKA Beaver Moon..."
wikitext
text/x-wiki
{{Infobox Group
|color_theme=tm
|title1 = Advent Group
|members =
[[Rosa Kalyani]] AKA Cold Moon
[[Rabbit Moon]]
[[Meg White]] AKA Wolf Moon
[[Alek Darrling]] AKA Snow Moon
[[Kaj Benedikt]] AKA Worm Moon
[[Stela Hartley]] AKA Pink Moon
[[Flora Vayu]] AKA Flower Moon
[[Susanna Pinon]] AKA Strawberry Moon
[[Buck Curt]] AKA Buck Moon
[[Abilene Ellington]] AKA Sturgeon Moon
[[Nieve Gardener]] AKA Corn Moon
[[Tisi Casanuevo]] AKA Hunter Moon
[[Helen Madura]] AKA Beaver Moon
}}
== References ==
{{Reflist}}
{{NavboxTM}}
[[Category:Norfork groups]]
be2709651b20c1474a08f88f4ba943ffbb10581c
123
121
2024-01-04T04:22:40Z
Laggardson
2
wikitext
text/x-wiki
{{Infobox Group
|color_theme=tm
|title1 = Advent Group
|members =
[[Rosa Kalyani]] AKA Cold Moon
[[Rabbit Moon]]
[[Meg White]] AKA Wolf Moon
[[Alek Darrling]] AKA Snow Moon
[[Kaj Benedikt]] AKA Worm Moon
[[Stela Hartley]] AKA Pink Moon
[[Flora Vayu]] AKA Flower Moon
[[Susanna Pinon]] AKA Strawberry Moon
[[Buck Curt]] AKA Buck Moon
[[Abilene Ellington]] AKA Sturgeon Moon
[[Nieve Gardener]] AKA Corn Moon
[[Tisi Casanuevo]] AKA Hunter Moon
[[Helen Madura]] AKA Beaver Moon
}}
The Lunar Coven is a group in Norfork
== References ==
{{Reflist}}
{{NavboxTM}}
[[Category:Norfork groups]]
a443866bd96502b5388072eef053fb15669f82d6
124
123
2024-01-04T04:25:52Z
Laggardson
2
wikitext
text/x-wiki
{{Infobox Group
|color_theme=tm
|title1 = Advent Group
|leaders = [[Rosa Kalyani]] AKA Cold Moon
|members =
[[Rabbit Moon]] <br>
[[Meg White]] AKA Wolf Moon <br>
[[Alek Darrling]] AKA Snow Moon <br>
[[Kaj Benedikt]] AKA Worm Moon <br>
[[Stela Hartley]] AKA Pink Moon <br>
[[Flora Vayu]] AKA Flower Moon <br>
[[Susanna Pinon]] AKA Strawberry Moon<br>
[[Buck Curt]] AKA Buck Moon <br>
[[Abilene Ellington]] AKA Sturgeon Moon <br>
[[Nieve Gardener]] AKA Corn Moon <br>
[[Tisi Casanuevo]] AKA Hunter Moon<br>
[[Helen Madura]] AKA Beaver Moon <br>
}}
The Lunar Coven is a group in Norfork
== References ==
{{Reflist}}
{{NavboxTM}}
[[Category:Norfork groups]]
4672cfee84f2da74e59135782505054a55978fe0
Template:Infobox Group
10
58
122
2024-01-04T04:21:44Z
Laggardson
2
Created page with "<infobox theme-source="color_theme"> <title source="title"> <default>{{PAGENAME}}</default> </title> <image source="image"> <caption source="caption"/> </image> <data source="aliases"> <label>Aliases</label> </data> <data source="leaders"> <label>Leaders</label> </data> <data source="members"> <label>Members</label> </data> <data source="area_of_operation"> <label>Area of Operation</label> </data> <data source="affiliatio..."
wikitext
text/x-wiki
<infobox theme-source="color_theme">
<title source="title">
<default>{{PAGENAME}}</default>
</title>
<image source="image">
<caption source="caption"/>
</image>
<data source="aliases">
<label>Aliases</label>
</data>
<data source="leaders">
<label>Leaders</label>
</data>
<data source="members">
<label>Members</label>
</data>
<data source="area_of_operation">
<label>Area of Operation</label>
</data>
<data source="affiliations">
<label>Affiliations</label>
</data>
<group collapse="open">
<header>Meta</header>
<data source="season">
<label>Season</label>
</data>
<data source="game">
<label>Game</label>
</data>
<data source="players">
<label>Players</label>
</data>
<data source="debut">
<label>Debut</label>
</data>
</group>
</infobox><!--
-->{{#ifeq: {{NAMESPACENUMBER}} | 0 | {{#if: {{{color_theme|}}} || [[Category:Infoboxes with missing color theme]] }} | }}
<noinclude>
{{Documentation}}
[[Category:Infoboxes]]
</noinclude>
731192b02a68e65e8568cf10a1fd06237e99ad2d
VaccuCon
0
59
126
2024-01-04T04:39:50Z
Laggardson
2
Created page with "{{Infobox Group |color_theme=tm |title1 = Advent Group |leaders = [[The Speaker]] (formerly) |members = [[Henry Sweezle]] <br> }} VaccuCon is a group that"
wikitext
text/x-wiki
{{Infobox Group
|color_theme=tm
|title1 = Advent Group
|leaders = [[The Speaker]] (formerly)
|members =
[[Henry Sweezle]] <br>
}}
VaccuCon is a group that
f541810c3daea7341678ca69f5b7eac5e6090494
Agents of Dranja
0
60
127
2024-01-04T06:20:33Z
Laggardson
2
Created page with "{{Infobox Group |color_theme=tm |title1 = Agents of Dranja |leaders = [[Valentina]] |members = [[Nammi]] <br> [[Romeo]] <br> [[Isla]] <br> [[Emory]] <br> [[Akito]] <br> [[Jaamini]] <br> }} The Agents of Dranja are a group of beings sent to Earth by the divine being [[Dranja]] to perform various duties ranging from the creation or repair of relationships, to “divine intervention”."
wikitext
text/x-wiki
{{Infobox Group
|color_theme=tm
|title1 = Agents of Dranja
|leaders = [[Valentina]]
|members =
[[Nammi]] <br>
[[Romeo]] <br>
[[Isla]] <br>
[[Emory]] <br>
[[Akito]] <br>
[[Jaamini]] <br>
}}
The Agents of Dranja are a group of beings sent to Earth by the divine being [[Dranja]] to perform various duties ranging from the creation or repair of relationships, to “divine intervention”.
71fa56c0573e781efc0a09270b74b2d6572f3520
List of Norfork episodes
0
61
128
2024-01-04T16:04:38Z
Laggardson
2
Created page with "Episodes of Season 1: ''[[Fate]]'', which ran from March, 2019 to October, 2019. {{Episode table | background=#FF0000 | season=2 | title=15 | airdate=10 | aux2=9 | aux2T=Runtime |episodes= {{Episode list |EpisodeNumber2=01 |Title=[[]] |AltDate= |Aux2= |ShortSummary= |LineColor=FF0000 }} {{Episode list |EpisodeNumber2=02 |Title=[[]] |AltDate= |Aux2= |ShortSummary= |LineColor=FF0000 }} {{Episode list |EpisodeNumber2=03 |Title=[[]] |AltDate= |Aux2= |ShortSummary= |Line..."
wikitext
text/x-wiki
Episodes of Season 1: ''[[Fate]]'', which ran from March, 2019 to October, 2019.
{{Episode table | background=#FF0000 | season=2 | title=15 | airdate=10 | aux2=9 | aux2T=Runtime
|episodes=
{{Episode list
|EpisodeNumber2=01
|Title=[[]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FF0000
}}
{{Episode list
|EpisodeNumber2=02
|Title=[[]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FF0000
}}
{{Episode list
|EpisodeNumber2=03
|Title=[[]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=04
|Title=[[]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=05
|Title=[[]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=06
|Title=[[]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=07
|Title=[[]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=08
|Title=[[]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=09
|Title=[[]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=10
|Title=[[]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=11
|Title=[[]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=12
|Title=[[]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=13
|Title=[[]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=14
|Title=[[]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=15
|Title=[[]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=16
|Title=[[]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=17
|Title=[[]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=18
|Title=[[]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=19
|Title=[[]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=20
|Title=[[]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=21
|Title=[[]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=22
|Title=[[]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=23
|Title=[[]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=24
|Title=[[]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=25
|Title=[[]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=26
|Title=[[]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=27
|Title=[[]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=28
|Title=[[]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
}}
5d7b064357aee0831becc9deff5718af758c1cab
129
128
2024-01-04T16:15:17Z
Laggardson
2
wikitext
text/x-wiki
Episodes of Season 2: ''[[Norfork]]'', which ran from October, 2022 to present.
{{Episode table | background=#FF0000 | season=2 | title=15 | airdate=10 | aux2=9 | aux2T=Runtime
|episodes=
{{Episode list
|EpisodeNumber2=00
|Title=[[Norfork 00: The Ground Itself|The Ground Itself]]
|AltDate=
|Aux2=1hr 54min
|ShortSummary=The cast collaboratively builds the world of Norfork using Everest Pipkin’s The Ground Itself.
|LineColor=FF0000
}}
{{Episode list
|EpisodeNumber2=01
|Title=[[Norfork 01: Messages|Messages]]
|AltDate=
|Aux2=1hr 32min
|ShortSummary= Welcome to Norfork - you need to leave. Kelly receives unexpected visitors. Rabbit has a performance review. Nammi gets a call that will change everything.
|LineColor=FF0000
}}
{{Episode list
|EpisodeNumber2=02
|Title=[[Norfork 02: Double-Take|Double-Take]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FF0000
}}
{{Episode list
|EpisodeNumber2=03
|Title=[[Norfork 03: The Right To Remain Silent|The Right To Remain Silent]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=04
|Title=[[]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=05
|Title=[[]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=06
|Title=[[]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=07
|Title=[[]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=08
|Title=[[]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=09
|Title=[[]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=10
|Title=[[]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=11
|Title=[[]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=12
|Title=[[]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=13
|Title=[[]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=14
|Title=[[]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=15
|Title=[[]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=16
|Title=[[]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=17
|Title=[[]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=18
|Title=[[]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=19
|Title=[[]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=20
|Title=[[]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=21
|Title=[[]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=22
|Title=[[]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=23
|Title=[[]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=24
|Title=[[]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=25
|Title=[[]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=26
|Title=[[]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=27
|Title=[[]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=28
|Title=[[]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
}}
bf93e9bc4ca664fa20b0b9faa58e0ec323c55250
130
129
2024-01-04T16:40:53Z
Laggardson
2
wikitext
text/x-wiki
Episodes of Season 2: ''[[Norfork]]'', which ran from October, 2022 to present.
{{Episode table | background=#FF0000 | season=2 | title=15 | airdate=10 | aux2=9 | aux2T=Runtime
|episodes=
{{Episode list
|EpisodeNumber2=00
|Title=[[Norfork 00: The Ground Itself|The Ground Itself]]
|AltDate=
|Aux2=1hr 54min
|ShortSummary=The cast collaboratively builds the world of Norfork using Everest Pipkin’s The Ground Itself.
|LineColor=FF0000
}}
{{Episode list
|EpisodeNumber2=01
|Title=[[Norfork 01: Messages|Messages]]
|AltDate=
|Aux2=1hr 32min
|ShortSummary= Welcome to Norfork - you need to leave. Kelly receives unexpected visitors. Rabbit has a performance review. Nammi gets a call that will change everything.
|LineColor=FF0000
}}
{{Episode list
|EpisodeNumber2=02
|Title=[[Norfork 02: Double-Take|Double-Take]]
|AltDate=1hr 11min
|Aux2=
|ShortSummary= The trio investigate a mysterious call. Kelly makes a plea. Nammi goes live. Rabbit loses focus at a crucial moment.
|LineColor=FF0000
}}
{{Episode list
|EpisodeNumber2=03
|Title=[[Norfork 03: The Right To Remain Silent|The Right To Remain Silent]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=04
|Title=[[]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=05
|Title=[[]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=06
|Title=[[]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=07
|Title=[[]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=08
|Title=[[]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=09
|Title=[[]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=10
|Title=[[]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=11
|Title=[[]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=12
|Title=[[]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=13
|Title=[[]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=14
|Title=[[]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=15
|Title=[[]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=16
|Title=[[]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=17
|Title=[[]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=18
|Title=[[]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=19
|Title=[[]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=20
|Title=[[]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=21
|Title=[[]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=22
|Title=[[]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=23
|Title=[[]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=24
|Title=[[]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=25
|Title=[[]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=26
|Title=[[]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=27
|Title=[[]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=28
|Title=[[]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
}}
5ba5d8ac63bfde29330d3ca87c0ac41866fde2d3
131
130
2024-01-04T18:05:40Z
Laggardson
2
wikitext
text/x-wiki
Episodes of Season 2: ''[[Norfork]]'', which ran from October, 2022 to present.
{{Episode table | background=#FF0000 | season=2 | title=15 | airdate=10 | aux2=9 | aux2T=Runtime
|episodes=
{{Episode list
|EpisodeNumber2=00
|Title=[[Norfork 00: The Ground Itself|The Ground Itself]]
|AltDate=
|Aux2=1hr 54min
|ShortSummary=The cast collaboratively builds the world of Norfork using Everest Pipkin’s The Ground Itself.
|LineColor=FF0000
}}
{{Episode list
|EpisodeNumber2=01
|Title=[[Norfork 01: Messages|Messages]]
|AltDate=
|Aux2=1hr 32min
|ShortSummary= Welcome to Norfork - you need to leave. Kelly receives unexpected visitors. Rabbit has a performance review. Nammi gets a call that will change everything.
|LineColor=FF0000
}}
{{Episode list
|EpisodeNumber2=02
|Title=[[Norfork 02: Double-Take|Double-Take]]
|AltDate=
|Aux2=1hr 11min
|ShortSummary= The trio investigate a mysterious call. Kelly makes a plea. Nammi goes live. Rabbit loses focus at a crucial moment.
|LineColor=FF0000
}}
{{Episode list
|EpisodeNumber2=03
|Title=[[Norfork 03: The Right To Remain Silent|The Right To Remain Silent]]
|AltDate=
|Aux2=1hr 5min
|ShortSummary= The trio must decide what to do after a new problem falls in their lap and they are forced to separate. Kelly follows a lead. Nammi tells the truth. Rabbit gets a new job.
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=04
|Title=[[Norfork 04: Stay In Touch|Stay In Touch]]
|AltDate=
|Aux2=1hr 3min
|ShortSummary= Scattered across Norfork and The City and dealing with an array of new problems, the trio make some tough decisions. Nammi makes a deal. Kelly returns to the scene of the crime. Rabbit deals with a personal tragedy.
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=05
|Title=[[Norfork 05: Bedfellows|Bedfellows]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=06
|Title=[[]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=07
|Title=[[]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=08
|Title=[[]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=09
|Title=[[]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=10
|Title=[[]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=11
|Title=[[]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=12
|Title=[[]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=13
|Title=[[]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=14
|Title=[[]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=15
|Title=[[]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=16
|Title=[[]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=17
|Title=[[]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=18
|Title=[[]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=19
|Title=[[]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=20
|Title=[[]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=21
|Title=[[]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=22
|Title=[[]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=23
|Title=[[]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=24
|Title=[[]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=25
|Title=[[]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=26
|Title=[[]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=27
|Title=[[]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=28
|Title=[[]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
}}
9cc9ba1219a6641718cbf61e35a67247b96bc750
Main Page
0
1
132
56
2024-01-04T18:06:46Z
Laggardson
2
wikitext
text/x-wiki
{{ColoredBox
|title=Welcome!
|background-title-color=#ff0000
|center-title=true
|center-content=true
|content=
Welcome to Pest Control Wiki - a wiki for the actual-play podcast ''[[Pest Control]]''!
<p><strong>Official Links</strong><br> [https://twitter.com/PestControlPod Twitter] • [https://cohost.org/pestcontrolpod Cohost] • [https://discord.gg/uv9bzF6RPY Discord] </p>
<p><strong>Contribute to the Wiki</strong><br> <strong>{{NUMBEROFARTICLES}} PAGES</strong> • [[Main_Page|Getting Started]]</p>
}}
{{ColoredBox
|title=Seasons
|background-title-color=#ff0000
|center-title=true
|content =
{{ContentFlex
|style=flex-wrap:wrap;justify-content:center;flex-grow:0
|content=
{{Home season list item
|filename=
|imagepage=
|text='''''[[Fate]]'''''
}}
{{Home season list item
|filename= norfork_coverart.png
|imagepage=
|text='''''[[Norfork]]'''''
}}
|center-content=true
}}
}}
{{ColoredBox
|title = The Cast
|background-title-color=#ff0000
|center-content=true|center-title=true
|content =
[[Sam Richardson]] • [[William White]] • [[Jonas Newhouse]] • [[Sam Darr]]
}}
__NOTOC__
== Welcome to {{SITENAME}}! ==
This Main Page was created automatically and it seems it hasn't been replaced yet.
=== For the bureaucrat(s) of this wiki ===
Hello, and welcome to your new wiki! Thank you for choosing Miraheze for the hosting of your wiki, we hope you will enjoy our hosting.
You can immediately start working on your wiki or whenever you want.
Need help? No problem! We will help you with your wiki as needed. To start, try checking out these helpful links:
* [[mw:Special:MyLanguage/Help:Contents|MediaWiki guide]] (e.g. navigation, editing, deleting pages, blocking users)
* [[meta:Special:MyLanguage/FAQ|Miraheze FAQ]]
* [[meta:Special:MyLanguage/Request features|Request settings changes on your wiki]]. (Extensions, Skin and Logo/Favicon changes should be done through [[Special:ManageWiki]] on your wiki, see [[meta:Special:MyLanguage/ManageWiki|ManageWiki]] for more information.)
==== I still don't understand X! ====
Well, that's no problem. Even if something isn't explained in the documentation/FAQ, we are still happy to help you. You can find us here:
* [[meta:Special:MyLanguage/Help center|On our own Miraheze wiki]]
* On [[phab:|Phabricator]]
* On [https://miraheze.org/discord Discord]
* On IRC in #miraheze on irc.libera.chat ([irc://irc.libera.chat/%23miraheze direct link]; [https://web.libera.chat/?channel=#miraheze webchat])
=== For visitors of this wiki ===
Hello, the default Main Page of this wiki (this page) has not yet been replaced by the bureaucrat(s) of this wiki. The bureaucrat(s) might still be working on a Main Page, so please check again later!
284e47e4da70c0af7bc55e0b994e6348bf98322c
133
132
2024-01-04T18:07:19Z
Laggardson
2
wikitext
text/x-wiki
{{ColoredBox
|title=Welcome!
|background-title-color=#ff0000
|center-title=true
|center-content=true
|content=
Welcome to Pest Control Wiki - a wiki for the actual-play podcast ''[[Pest Control]]''!
<p><strong>Official Links</strong><br> [https://twitter.com/PestControlPod Twitter] • [https://cohost.org/pestcontrolpod Cohost] • [https://discord.gg/uv9bzF6RPY Discord] </p>
<p><strong>Contribute to the Wiki</strong><br> <strong>{{NUMBEROFARTICLES}} PAGES</strong> • [[Main_Page|Getting Started]]</p>
}}
{{ColoredBox
|title=Seasons
|background-title-color=#ff0000
|center-title=true
|content =
{{ContentFlex
|style=flex-wrap:wrap;justify-content:center;flex-grow:0
|content=
{{Home season list item
|filename=
|imagepage=
|text='''''[[Fate]]'''''
}}
{{Home season list item
|filename= norfork_coverart.png
|imagepage=
|text='''''[[Norfork]]'''''
}}
}}
|center-content=true
}}
{{ColoredBox
|title = The Cast
|background-title-color=#ff0000
|center-content=true|center-title=true
|content =
[[Sam Richardson]] • [[William White]] • [[Jonas Newhouse]] • [[Sam Darr]]
}}
__NOTOC__
== Welcome to {{SITENAME}}! ==
This Main Page was created automatically and it seems it hasn't been replaced yet.
=== For the bureaucrat(s) of this wiki ===
Hello, and welcome to your new wiki! Thank you for choosing Miraheze for the hosting of your wiki, we hope you will enjoy our hosting.
You can immediately start working on your wiki or whenever you want.
Need help? No problem! We will help you with your wiki as needed. To start, try checking out these helpful links:
* [[mw:Special:MyLanguage/Help:Contents|MediaWiki guide]] (e.g. navigation, editing, deleting pages, blocking users)
* [[meta:Special:MyLanguage/FAQ|Miraheze FAQ]]
* [[meta:Special:MyLanguage/Request features|Request settings changes on your wiki]]. (Extensions, Skin and Logo/Favicon changes should be done through [[Special:ManageWiki]] on your wiki, see [[meta:Special:MyLanguage/ManageWiki|ManageWiki]] for more information.)
==== I still don't understand X! ====
Well, that's no problem. Even if something isn't explained in the documentation/FAQ, we are still happy to help you. You can find us here:
* [[meta:Special:MyLanguage/Help center|On our own Miraheze wiki]]
* On [[phab:|Phabricator]]
* On [https://miraheze.org/discord Discord]
* On IRC in #miraheze on irc.libera.chat ([irc://irc.libera.chat/%23miraheze direct link]; [https://web.libera.chat/?channel=#miraheze webchat])
=== For visitors of this wiki ===
Hello, the default Main Page of this wiki (this page) has not yet been replaced by the bureaucrat(s) of this wiki. The bureaucrat(s) might still be working on a Main Page, so please check again later!
d5cb38142f5f6c95d1b51703ad03d6a637fa504e
134
133
2024-01-04T18:07:59Z
Laggardson
2
wikitext
text/x-wiki
{{ColoredBox
|title=Welcome!
|background-title-color=#ff0000
|center-title=true
|center-content=true
|content=
Welcome to Pest Control Wiki - a wiki for the actual-play podcast ''[[Pest Control]]''!
<p><strong>Official Links</strong><br> [https://twitter.com/PestControlPod Twitter] • [https://cohost.org/pestcontrolpod Cohost] • [https://discord.gg/uv9bzF6RPY Discord] </p>
<p><strong>Contribute to the Wiki</strong><br> <strong>{{NUMBEROFARTICLES}} PAGES</strong> • [[Getting Started]]</p>
}}
{{ColoredBox
|title=Seasons
|background-title-color=#ff0000
|center-title=true
|content =
{{ContentFlex
|style=flex-wrap:wrap;justify-content:center;flex-grow:0
|content=
{{Home season list item
|filename=
|imagepage=
|text='''''[[Fate]]'''''
}}
{{Home season list item
|filename= norfork_coverart.png
|imagepage=
|text='''''[[Norfork]]'''''
}}
}}
|center-content=true
}}
{{ColoredBox
|title = The Cast
|background-title-color=#ff0000
|center-content=true|center-title=true
|content =
[[Sam Richardson]] • [[William White]] • [[Jonas Newhouse]] • [[Sam Darr]]
}}
__NOTOC__
== Welcome to {{SITENAME}}! ==
This Main Page was created automatically and it seems it hasn't been replaced yet.
=== For the bureaucrat(s) of this wiki ===
Hello, and welcome to your new wiki! Thank you for choosing Miraheze for the hosting of your wiki, we hope you will enjoy our hosting.
You can immediately start working on your wiki or whenever you want.
Need help? No problem! We will help you with your wiki as needed. To start, try checking out these helpful links:
* [[mw:Special:MyLanguage/Help:Contents|MediaWiki guide]] (e.g. navigation, editing, deleting pages, blocking users)
* [[meta:Special:MyLanguage/FAQ|Miraheze FAQ]]
* [[meta:Special:MyLanguage/Request features|Request settings changes on your wiki]]. (Extensions, Skin and Logo/Favicon changes should be done through [[Special:ManageWiki]] on your wiki, see [[meta:Special:MyLanguage/ManageWiki|ManageWiki]] for more information.)
==== I still don't understand X! ====
Well, that's no problem. Even if something isn't explained in the documentation/FAQ, we are still happy to help you. You can find us here:
* [[meta:Special:MyLanguage/Help center|On our own Miraheze wiki]]
* On [[phab:|Phabricator]]
* On [https://miraheze.org/discord Discord]
* On IRC in #miraheze on irc.libera.chat ([irc://irc.libera.chat/%23miraheze direct link]; [https://web.libera.chat/?channel=#miraheze webchat])
=== For visitors of this wiki ===
Hello, the default Main Page of this wiki (this page) has not yet been replaced by the bureaucrat(s) of this wiki. The bureaucrat(s) might still be working on a Main Page, so please check again later!
edb2c8eca0d527e9b7986147d5b9f8e80e766c13
Norfork 01: Messages
0
62
137
2024-01-04T18:57:26Z
Laggardson
2
Created page with "{{Infobox episode|color_theme=marielda|title = Four Conversations|episode_number = 10|release_date = September 15, 2016|previous_episode = [[The Valentine Affair Pt. 4]]|next_episode = [[The Killing of the King-God Samothes By The Traitor Prince Maelgwyn Pt. 1]]|length = 109 min|episode_page = https://friendsatthetable.net/marielda-10-four-conversations |transcript = https://drive.google.com/open?id=1FZbTPPG_vD6f7eUTAC2jH-IoLBdbB8nneyUuzv_AZzs |score=Marielda: Frien..."
wikitext
text/x-wiki
{{Infobox episode|color_theme=marielda|title = Four Conversations|episode_number = 10|release_date = September 15, 2016|previous_episode = [[The Valentine Affair Pt. 4]]|next_episode = [[The Killing of the King-God Samothes By The Traitor Prince Maelgwyn Pt. 1]]|length = 109 min|episode_page = https://friendsatthetable.net/marielda-10-four-conversations
|transcript = https://drive.google.com/open?id=1FZbTPPG_vD6f7eUTAC2jH-IoLBdbB8nneyUuzv_AZzs |score=[[Marielda: Friends At The Table Soundtrack, The Interlude|Marielda]]<br />[[Marielda: Friends At The Table Soundtrack, The Interlude|The Killing of the King-God Samothes By The Traitor Prince Maelgwyn, or The Marielda Suite]]|cast=[[Austin Walker]]<br />[[Ali Acampora]]<br />[[Andrew Lee Swan]]<br />[[Jack de Quidt]]<br />[[Sylvi Bullet]]|game=[[Blades in the Dark]]}}
'''''Marielda'' 10: "Four Conversations"''' covers an extended downtime period of months between the end of The Valentine Affair and the start of [[The Six|the Six's]] final job.
==Episode description==
== Contents==
===Opening===
=== Plot ===
====Opening====
===Closing===
==Cast ==
{{Norfork episodes}}
{{NavboxNorfork}}
[[Category:Norfork episodes]]
[[Category:Norfork Arc 1 episodes]]
a9f02f2a0a3cfe0775058a5aa2564858f8e30154
139
137
2024-01-04T19:02:39Z
Laggardson
2
wikitext
text/x-wiki
{{Infobox episode
|color_theme=
|title = Messages
|episode_number = 01
|release_date =
|previous_episode = [[Norfork 00: The Ground Itself|The Ground Itself]]
|next_episode = [[Norfork 02: Double-Take|Double-Take]]
|length = 104min
|episode_page = https://open.spotify.com/episode/0jDEtfiNFofdtMXGQ6weOE?si=4360fe9c202b4872
|transcript =
|score=
|cast=
[[Sam Richardson]] <br>
[[William White]] <br>
[[Jonas Newhouse]] <br>
[[Sam Darr]]
|game=[[Monster of the Week]]
}}
'''''Marielda'' 10: "Four Conversations"''' covers an extended downtime period of months between the end of The Valentine Affair and the start of [[The Six|the Six's]] final job.
==Episode description==
== Contents==
===Opening===
=== Plot ===
====Opening====
===Closing===
==Cast ==
{{Norfork episodes}}
{{NavboxNorfork}}
[[Category:Norfork episodes]]
[[Category:Norfork Arc 1 episodes]]
1ec002979b3c2cd02644d7caa761f580a3f12e96
140
139
2024-01-04T19:11:29Z
Laggardson
2
wikitext
text/x-wiki
{{Infobox episode
|color_theme=
|title = Messages
|episode_number = 01
|release_date =
|previous_episode = [[Norfork 00: The Ground Itself|The Ground Itself]]
|next_episode = [[Norfork 02: Double-Take|Double-Take]]
|length = 104min
|episode_page = https://open.spotify.com/episode/0jDEtfiNFofdtMXGQ6weOE?si=4360fe9c202b4872
|transcript =
|score=
|cast=
[[Sam Richardson]] <br>
[[William White]] <br>
[[Jonas Newhouse]] <br>
[[Sam Darr]]
|game=[[Monster of the Week]]
}}
''Messages'' is the start of the first arc of the second season of [[Pest Control]].
==Episode description==
Welcome to Norfork - you need to leave. Kelly receives unexpected visitors. Rabbit has a performance review. Nammi gets a call that will change everything.
==Plot==
A strange dream featuring a radio call-in show. A speaker who turned out to be a ghost. Ominous warnings about Norfork. <br>
[[Kelly Aberdeen|Kelly]] is visited by [[Ripley Adams|Det. Ripley Adams]] and [[Majorie Sherridan|Officer Marjorie Sherridan]], who offer him a chance to join the newly formed [[Myriad Taskforce]], which he refuses. Kelly speaks briefly to [[Butch]] - the creature he had made a deal with after Det. Adams almost killed him - and Butch promises to deal with Det. Adams if the need arises. <br>
[[Rabbit Moon|Rabbit]] (as [[Sage Brennan Schipp]]) is working at [[The Bunker]] - their latest odd job. They are admonished by fellow coworker [[Reina Germaine]] for slacking off, then got a call from their moms that [[Rosa Kalyani|Cold Moon]] wants to see them. At their mom’s house, Cold pulls them into a room alone to demonstrate their powers - which ended with Rabbit accidentally embedding a metal cube in the bedroom wall. Cold seemed unimpressed, but tells them to keep working on their skills. She also gives them a letter she needs delivered. <br>
[[Nammi]] shows up to work at [[Hothouse Flowers]], but after one of her clients never shows up to pick up their arrangements she leaves to go hang out with Kelly and Rabbit, who pick her up on Rabbit’s motorcycle-sidecar [[Thumper]]. <br>
At a local construction site, Kelly, Rabbit, and Nammi catch up. They realize they've all had the same dream - the one about that radio show - but their conversation is interrupted by a phone call from Nammi's missing client, [[Ace Aruna|Ace]. Ace confesses that they might not be along to pick up their flowers as their partner is missing, and there is blood on the ground of their home. They are panicked, believing that the police will assume it was them because they are a vampire. Nammi manages to talk them out of running off, and in the background of the call she hears the police arrive out front. Kelly demands that Rabbit drive them all to Ace’s address.
==Cast==
{{Norfork episodes}}
{{NavboxNorfork}}
[[Category:Norfork episodes]]
[[Category:Norfork Arc 1 episodes]]
346ace9b4c88af81f324a67ef9b15ab5c1b73104
141
140
2024-01-04T19:11:48Z
Laggardson
2
wikitext
text/x-wiki
{{Infobox episode
|color_theme=
|title = Messages
|episode_number = 01
|release_date =
|previous_episode = [[Norfork 00: The Ground Itself|The Ground Itself]]
|next_episode = [[Norfork 02: Double-Take|Double-Take]]
|length = 104min
|episode_page = https://open.spotify.com/episode/0jDEtfiNFofdtMXGQ6weOE?si=4360fe9c202b4872
|transcript =
|score=
|cast=
[[Sam Richardson]] <br>
[[William White]] <br>
[[Jonas Newhouse]] <br>
[[Sam Darr]]
|game=[[Monster of the Week]]
}}
''Messages'' is the start of the first arc of the second season of [[Pest Control]].
==Episode description==
Welcome to Norfork - you need to leave. Kelly receives unexpected visitors. Rabbit has a performance review. Nammi gets a call that will change everything.
==Plot==
A strange dream featuring a radio call-in show. A speaker who turned out to be a ghost. Ominous warnings about Norfork. <br>
[[Kelly Aberdeen|Kelly]] is visited by [[Ripley Adams|Det. Ripley Adams]] and [[Majorie Sherridan|Officer Marjorie Sherridan]], who offer him a chance to join the newly formed [[Myriad Taskforce]], which he refuses. Kelly speaks briefly to [[Butch]] - the creature he had made a deal with after Det. Adams almost killed him - and Butch promises to deal with Det. Adams if the need arises. <br>
[[Rabbit Moon|Rabbit]] (as [[Sage Brennan Schipp]]) is working at [[The Bunker]] - their latest odd job. They are admonished by fellow coworker [[Reina Germaine]] for slacking off, then got a call from their moms that [[Rosa Kalyani|Cold Moon]] wants to see them. At their mom’s house, Cold pulls them into a room alone to demonstrate their powers - which ended with Rabbit accidentally embedding a metal cube in the bedroom wall. Cold seemed unimpressed, but tells them to keep working on their skills. She also gives them a letter she needs delivered. <br>
[[Nammi]] shows up to work at [[Hothouse Flowers]], but after one of her clients never shows up to pick up their arrangements she leaves to go hang out with Kelly and Rabbit, who pick her up on Rabbit’s motorcycle-sidecar [[Thumper]]. <br>
At a local construction site, Kelly, Rabbit, and Nammi catch up. They realize they've all had the same dream - the one about that radio show - but their conversation is interrupted by a phone call from Nammi's missing client, [[Ace Aruna|Ace]]. Ace confesses that they might not be along to pick up their flowers as their partner is missing, and there is blood on the ground of their home. They are panicked, believing that the police will assume it was them because they are a vampire. Nammi manages to talk them out of running off, and in the background of the call she hears the police arrive out front. Kelly demands that Rabbit drive them all to Ace’s address.
==Cast==
{{Norfork episodes}}
{{NavboxNorfork}}
[[Category:Norfork episodes]]
[[Category:Norfork Arc 1 episodes]]
b21b4729b7b071b130e6cd9a3f96823d36baa4b8
143
141
2024-01-04T19:15:11Z
Laggardson
2
wikitext
text/x-wiki
{{Infobox episode
|color_theme=
|title = Messages
|episode_number = 01
|release_date =
|previous_episode = [[Norfork 00: The Ground Itself|The Ground Itself]]
|next_episode = [[Norfork 02: Double-Take|Double-Take]]
|length = 104min
|episode_page = https://open.spotify.com/episode/0jDEtfiNFofdtMXGQ6weOE?si=4360fe9c202b4872
|transcript =
|score=
|cast=
[[Sam Richardson]] <br>
[[William White]] <br>
[[Jonas Newhouse]] <br>
[[Sam Darr]]
|game=[[Monster of the Week]]
|content_warnings= Police, loss/grief, memory loss
|arc= 1
}}
''Messages'' is the start of the first arc of the second season of [[Pest Control]].
==Episode description==
Welcome to Norfork - you need to leave. Kelly receives unexpected visitors. Rabbit has a performance review. Nammi gets a call that will change everything.
==Plot==
A strange dream featuring a radio call-in show. A speaker who turned out to be a ghost. Ominous warnings about Norfork. <br>
[[Kelly Aberdeen|Kelly]] is visited by [[Ripley Adams|Det. Ripley Adams]] and [[Majorie Sherridan|Officer Marjorie Sherridan]], who offer him a chance to join the newly formed [[Myriad Taskforce]], which he refuses. Kelly speaks briefly to [[Butch]] - the creature he had made a deal with after Det. Adams almost killed him - and Butch promises to deal with Det. Adams if the need arises. <br>
[[Rabbit Moon|Rabbit]] (as [[Sage Brennan Schipp]]) is working at [[The Bunker]] - their latest odd job. They are admonished by fellow coworker [[Reina Germaine]] for slacking off, then got a call from their moms that [[Rosa Kalyani|Cold Moon]] wants to see them. At their mom’s house, Cold pulls them into a room alone to demonstrate their powers - which ended with Rabbit accidentally embedding a metal cube in the bedroom wall. Cold seemed unimpressed, but tells them to keep working on their skills. She also gives them a letter she needs delivered. <br>
[[Nammi]] shows up to work at [[Hothouse Flowers]], but after one of her clients never shows up to pick up their arrangements she leaves to go hang out with Kelly and Rabbit, who pick her up on Rabbit’s motorcycle-sidecar [[Thumper]]. <br>
At a local construction site, Kelly, Rabbit, and Nammi catch up. They realize they've all had the same dream - the one about that radio show - but their conversation is interrupted by a phone call from Nammi's missing client, [[Ace Aruna|Ace]]. Ace confesses that they might not be along to pick up their flowers as their partner is missing, and there is blood on the ground of their home. They are panicked, believing that the police will assume it was them because they are a vampire. Nammi manages to talk them out of running off, and in the background of the call she hears the police arrive out front. Kelly demands that Rabbit drive them all to Ace’s address.
==Cast==
{{Norfork episodes}}
{{NavboxNorfork}}
[[Category:Norfork episodes]]
[[Category:Norfork Arc 1 episodes]]
18f40e5ca705a1b98f0042902187c9f84d09c1fc
Template:Infobox episode
10
63
138
2024-01-04T18:58:03Z
Laggardson
2
Created page with "<onlyinclude><infobox theme-source="color_theme"> <title source="title"><default>{{PAGENAME}}</default></title> <image source="image"><caption source="caption"/></image> <group> <header>Episode information</header> <data source="episode_number"> <label>Episode</label> </data> <data source="live_date"> <label>Live Date</label> </data> <data source="patreon_date"> <label>Patreon Date</label> </data> <data source="rele..."
wikitext
text/x-wiki
<onlyinclude><infobox theme-source="color_theme">
<title source="title"><default>{{PAGENAME}}</default></title>
<image source="image"><caption source="caption"/></image>
<group>
<header>Episode information</header>
<data source="episode_number">
<label>Episode</label>
</data>
<data source="live_date">
<label>Live Date</label>
</data>
<data source="patreon_date">
<label>Patreon Date</label>
</data>
<data source="release_date">
<label>Release Date</label>
</data>
<data source="length">
<label>Length</label>
</data>
<data source="content_warnings">
<label>Content Warnings</label>
</data>
</group>
<group>
<header>Meta</header>
<data source="cast">
<label>Cast</label>
</data>
<data source="game">
<label>Game</label>
</data>
<data source="arc">
<label>Arc</label>
</data>
<data source="score">
<label>Score</label>
</data>
</group>
<group layout="horizontal" collapse="open" row-items="2">
<header>Episode guide</header>
<data source="previous_episode">
<label>Previous</label>
<default> </default>
</data>
<data source="next_episode">
<label>Next</label>
<default> </default>
</data>
<data source="previous_arc">
<label>Previous Arc</label>
</data>
<data source="next_arc">
<label>Next Arc</label>
</data>
</group>
<group collapse="open">
<header>Links</header>
<data source="episode_page">
<label>Episode Page</label>
<format>[{{{episode_page}}} friendsatthetable.net]</format>
</data>
<data source="patreon_page">
<label>Patreon Page</label>
<format>[{{{patreon_page}}} Patreon]</format>
</data>
<data source="livestream_page">
<label>Livestream</label>
<format>[{{{livestream_page}}} {{{livestream_link_text}}}]</format>
</data>
<data source="transcript">
<label>Transcript</label>
<format>[{{{transcript}}} Google Docs]</format>
<default>''TBA''</default>
</data>
<data source="transcript_text">
<label>Transcript</label>
</data>
</group>
</infobox>{{#ifeq: {{NAMESPACENUMBER}} | 0 | {{#if: {{{color_theme|}}} || [[Category:Infoboxes with missing color theme]] }} | }}{{#ifeq: {{NAMESPACENUMBER}} | 0 | {{#if: {{{transcript|}}} || [[Category:Episodes without transcripts]] }} | }}</onlyinclude>
<noinclude>
{{documentation}}
[[Category:Infoboxes]]
</noinclude>
5bf8e787cea418aee75daeead5ca856eec156a37
142
138
2024-01-04T19:14:21Z
Laggardson
2
wikitext
text/x-wiki
<onlyinclude><infobox theme-source="color_theme">
<title source="title"><default>{{PAGENAME}}</default></title>
<image source="image"><caption source="caption"/></image>
<group>
<header>Episode information</header>
<data source="episode_number">
<label>Episode</label>
</data>
<data source="live_date">
<label>Live Date</label>
</data>
<data source="patreon_date">
<label>Patreon Date</label>
</data>
<data source="release_date">
<label>Release Date</label>
</data>
<data source="length">
<label>Length</label>
</data>
<data source="content_warnings">
<label>Content Warnings</label>
</data>
</group>
<group>
<header>Meta</header>
<data source="cast">
<label>Cast</label>
</data>
<data source="game">
<label>Game</label>
</data>
<data source="arc">
<label>Arc</label>
</data>
<data source="score">
<label>Score</label>
</data>
</group>
<group layout="horizontal" collapse="open" row-items="2">
<header>Episode guide</header>
<data source="previous_episode">
<label>Previous</label>
<default> </default>
</data>
<data source="next_episode">
<label>Next</label>
<default> </default>
</data>
<data source="previous_arc">
<label>Previous Arc</label>
</data>
<data source="next_arc">
<label>Next Arc</label>
</data>
</group>
<group collapse="open">
<header>Links</header>
<data source="episode_page">
<label>Episode Page</label>
<format>[{{{episode_page}}} Spotify]</format>
</data>
<data source="patreon_page">
<label>Patreon Page</label>
<format>[{{{patreon_page}}} Patreon]</format>
</data>
<data source="livestream_page">
<label>Livestream</label>
<format>[{{{livestream_page}}} {{{livestream_link_text}}}]</format>
</data>
<data source="transcript">
<label>Transcript</label>
<format>[{{{transcript}}} Google Docs]</format>
<default>''TBA''</default>
</data>
<data source="transcript_text">
<label>Transcript</label>
</data>
</group>
</infobox>{{#ifeq: {{NAMESPACENUMBER}} | 0 | {{#if: {{{color_theme|}}} || [[Category:Infoboxes with missing color theme]] }} | }}{{#ifeq: {{NAMESPACENUMBER}} | 0 | {{#if: {{{transcript|}}} || [[Category:Episodes without transcripts]] }} | }}</onlyinclude>
<noinclude>
{{documentation}}
[[Category:Infoboxes]]
</noinclude>
429e68bd022a53bc1318290d2ac64f46f6eb5c48
144
142
2024-01-04T19:17:32Z
Laggardson
2
wikitext
text/x-wiki
<onlyinclude><infobox theme-source="color_theme">
<title source="title"><default>{{PAGENAME}}</default></title>
<image source="image"><caption source="caption"/></image>
<group>
<header>Episode information</header>
<data source="episode_number">
<label>Episode</label>
</data>
<data source="live_date">
<label>Live Date</label>
</data>
<data source="patreon_date">
<label>Patreon Date</label>
</data>
<data source="release_date">
<label>Release Date</label>
</data>
<data source="length">
<label>Length</label>
</data>
<data source="content_warnings">
<label>Content Warnings</label>
</data>
</group>
<group>
<header>Meta</header>
<data source="cast">
<label>Cast</label>
</data>
<data source="game">
<label>Game</label>
</data>
<data source="arc">
<label>Arc</label>
</data>
<data source="score">
<label>Score</label>
</data>
</group>
<group layout="horizontal" collapse="open" row-items="2">
<header>Episode guide</header>
<data source="previous_episode">
<label>Previous</label>
<default> </default>
</data>
<data source="next_episode">
<label>Next</label>
<default> </default>
</data>
<data source="previous_arc">
<label>Previous Arc</label>
</data>
<data source="next_arc">
<label>Next Arc</label>
</data>
</group>
<group collapse="open">
<header>Links</header>
<data source="episode_page">
<label>Episode Page</label>
<format>[{{{episode_page}}} Spotify]</format>
</data>
<data source="patreon_page">
<label>Patreon Page</label>
<format>[{{{patreon_page}}} Patreon]</format>
</data>
<data source="livestream_page">
<label>Livestream</label>
<format>[{{{livestream_page}}} {{{livestream_link_text}}}]</format>
</data>
<data source="transcript">
<label>Transcript</label>
<format>[{{{transcript}}} Google Docs]</format>
<default>''TBA''</default>
</data>
<data source="transcript_text">
<label>Transcript</label>
</data>
</group>
</infobox>{{#ifeq: {{NAMESPACENUMBER}} | 0 | {{#if: {{{color_theme|}}} || [[Category:Infoboxes with missing color theme]] }} | }}{{#ifeq: {{NAMESPACENUMBER}} | 0 | {{#if: {{{transcript|}}} || [[Category:Episodes without transcripts]] }} | }}</onlyinclude>
<noinclude>
{{documentation}}
[[Category:Infoboxes]]
</noinclude>
{{Infobox episode
|color_theme=
|title =
|episode_number =
|release_date =
|previous_episode =
|next_episode =
|length =
|episode_page =
|transcript =
|score=
|cast=
[[Sam Richardson]] <br>
[[William White]] <br>
[[Jonas Newhouse]] <br>
[[Sam Darr]]
|game=
|content_warnings=
|arc=
}}
==Episode description==
==Plot==
==Cast==
{{Categories}}
1adf3d2393d734a0b19e27e7b5e9fbf6d7e45f35
Norfork 00: The Ground Itself
0
64
145
2024-01-04T19:18:19Z
Laggardson
2
Created page with " {{Infobox episode |color_theme= |title = |episode_number = |release_date = |previous_episode = |next_episode = |length = |episode_page = |transcript = |score= |cast= [[Sam Richardson]] <br> [[William White]] <br> [[Jonas Newhouse]] <br> [[Sam Darr]] |game= |content_warnings= |arc= }} ==Episode description== ==Plot== ==Cast== {{Categories}}"
wikitext
text/x-wiki
{{Infobox episode
|color_theme=
|title =
|episode_number =
|release_date =
|previous_episode =
|next_episode =
|length =
|episode_page =
|transcript =
|score=
|cast=
[[Sam Richardson]] <br>
[[William White]] <br>
[[Jonas Newhouse]] <br>
[[Sam Darr]]
|game=
|content_warnings=
|arc=
}}
==Episode description==
==Plot==
==Cast==
{{Categories}}
43cce79f73c7f0e8a2176dc36383411f1b349d66
Norfork 02: Double-Take
0
65
146
2024-01-04T19:18:39Z
Laggardson
2
Created page with " {{Infobox episode |color_theme= |title = |episode_number = |release_date = |previous_episode = |next_episode = |length = |episode_page = |transcript = |score= |cast= [[Sam Richardson]] <br> [[William White]] <br> [[Jonas Newhouse]] <br> [[Sam Darr]] |game= |content_warnings= |arc= }} ==Episode description== ==Plot== ==Cast== {{Categories}}"
wikitext
text/x-wiki
{{Infobox episode
|color_theme=
|title =
|episode_number =
|release_date =
|previous_episode =
|next_episode =
|length =
|episode_page =
|transcript =
|score=
|cast=
[[Sam Richardson]] <br>
[[William White]] <br>
[[Jonas Newhouse]] <br>
[[Sam Darr]]
|game=
|content_warnings=
|arc=
}}
==Episode description==
==Plot==
==Cast==
{{Categories}}
43cce79f73c7f0e8a2176dc36383411f1b349d66
Template:Navbox
10
66
147
2024-01-04T19:20:04Z
Laggardson
2
Created page with "<includeonly>{{#invoke:Navbox|navbox}} </includeonly><noinclude> [https://www.mediawiki.org/wiki/Template:Navbox Mediawiki documentation] [[Category:Navboxes]]</noinclude>"
wikitext
text/x-wiki
<includeonly>{{#invoke:Navbox|navbox}}
</includeonly><noinclude>
[https://www.mediawiki.org/wiki/Template:Navbox Mediawiki documentation]
[[Category:Navboxes]]</noinclude>
9623819be89a7513a696cb2e87353818c38830e5
Template:Navbox/style.css
10
67
148
2024-01-04T19:20:46Z
Laggardson
2
Created page with ".navbox-title a { color: black; text-decoration: underline; } .navbox-inner { border-spacing: 0; } .navbox { border-width: 2px; border-style: solid; padding: 0px !important; } .navbox-list { text-align: left !important; padding-left: 2px !important; }"
sanitized-css
text/css
.navbox-title a {
color: black;
text-decoration: underline;
}
.navbox-inner {
border-spacing: 0;
}
.navbox {
border-width: 2px;
border-style: solid;
padding: 0px !important;
}
.navbox-list {
text-align: left !important;
padding-left: 2px !important;
}
fde1d68890d2e040c53411ab15c3402ef2e22a0f
Template:NavboxFate
10
68
149
2024-01-04T19:24:33Z
Laggardson
2
Created page with "<templatestyles src="Navbox/style.css"></templatestyles> {{navbox |title='''[[Marielda (season)|Marielda]]''' |navboxclass=navbox-marielda |above= [[Seasons of Hieron]] • [[Autumn in Hieron]] • '''[[Marielda (season)|Marielda]]''' • [[Winter in Hieron]] • [[Spring in Hieron]] |group1='''Characters''' |list1= {{Navbox|child |group1= Player Characters |list1= [[Keeley Stewart]] • [[Henrietta Salm]] • [[Maggie Thornback]] • [[Jamie Jesigo]] |group3=Non-Pla..."
wikitext
text/x-wiki
<templatestyles src="Navbox/style.css"></templatestyles>
{{navbox
|title='''[[Marielda (season)|Marielda]]'''
|navboxclass=navbox-marielda
|above= [[Seasons of Hieron]] • [[Autumn in Hieron]] • '''[[Marielda (season)|Marielda]]''' • [[Winter in Hieron]] • [[Spring in Hieron]]
|group1='''Characters'''
|list1=
{{Navbox|child
|group1= Player Characters
|list1= [[Keeley Stewart]] • [[Henrietta Salm]] • [[Maggie Thornback]] • [[Jamie Jesigo]]
|group3=Non-Player Characters
|list3= • ''[[:Category:Marielda characters|Full List]]''
}}
|group2='''Locations'''
|list2= [[The Dirge (location)The Dirge]]
|group3='''Groups'''
|list3={{Navbox|child
|group1=Factions
|list1= [[VaccuCon]]
|group2= Peoples
|list2=
}}
|group5='''Lore'''
|list5=
|group6='''Meta'''
|list6=
|below= ''Fate.''
}}
<noinclude>[[Category:Navboxes]]</noinclude>
6d7e880d79f2818753a72814e5033d32451f8b15
Module:Navbar
828
69
150
2024-01-04T19:25:19Z
Laggardson
2
Created page with "local p = {} local cfg = mw.loadData('Module:Navbar/configuration') local function get_title_arg(is_collapsible, template) local title_arg = 1 if is_collapsible then title_arg = 2 end if template then title_arg = 'template' end return title_arg end local function choose_links(template, args) -- The show table indicates the default displayed items. -- view, talk, edit, hist, move, watch -- TODO: Move to configuration. local show = {true, true, true, false, false..."
Scribunto
text/plain
local p = {}
local cfg = mw.loadData('Module:Navbar/configuration')
local function get_title_arg(is_collapsible, template)
local title_arg = 1
if is_collapsible then title_arg = 2 end
if template then title_arg = 'template' end
return title_arg
end
local function choose_links(template, args)
-- The show table indicates the default displayed items.
-- view, talk, edit, hist, move, watch
-- TODO: Move to configuration.
local show = {true, true, true, false, false, false}
if template then
show[2] = false
show[3] = false
local index = {t = 2, d = 2, e = 3, h = 4, m = 5, w = 6,
talk = 2, edit = 3, hist = 4, move = 5, watch = 6}
-- TODO: Consider removing TableTools dependency.
for _, v in ipairs(require ('Module:TableTools').compressSparseArray(args)) do
local num = index[v]
if num then show[num] = true end
end
end
local remove_edit_link = args.noedit
if remove_edit_link then show[3] = false end
return show
end
local function add_link(link_description, ul, is_mini, font_style)
local l
if link_description.url then
l = {'[', '', ']'}
else
l = {'[[', '|', ']]'}
end
ul:tag('li')
:addClass('nv-' .. link_description.full)
:wikitext(l[1] .. link_description.link .. l[2])
:tag(is_mini and 'abbr' or 'span')
:attr('title', link_description.html_title)
:cssText(font_style)
:wikitext(is_mini and link_description.mini or link_description.full)
:done()
:wikitext(l[3])
:done()
end
local function make_list(title_text, has_brackets, displayed_links, is_mini, font_style)
local title = mw.title.new(mw.text.trim(title_text), cfg.title_namespace)
if not title then
error(cfg.invalid_title .. title_text)
end
local talkpage = title.talkPageTitle and title.talkPageTitle.fullText or ''
-- TODO: Get link_descriptions and show into the configuration module.
-- link_descriptions should be easier...
local link_descriptions = {
{ ['mini'] = 'v', ['full'] = 'view', ['html_title'] = 'View this template',
['link'] = title.fullText, ['url'] = false },
{ ['mini'] = 't', ['full'] = 'talk', ['html_title'] = 'Discuss this template',
['link'] = talkpage, ['url'] = false },
{ ['mini'] = 'e', ['full'] = 'edit', ['html_title'] = 'Edit this template',
['link'] = title:fullUrl('action=edit'), ['url'] = true },
{ ['mini'] = 'h', ['full'] = 'hist', ['html_title'] = 'History of this template',
['link'] = title:fullUrl('action=history'), ['url'] = true },
{ ['mini'] = 'm', ['full'] = 'move', ['html_title'] = 'Move this template',
['link'] = mw.title.new('Special:Movepage'):fullUrl('target='..title.fullText), ['url'] = true },
{ ['mini'] = 'w', ['full'] = 'watch', ['html_title'] = 'Watch this template',
['link'] = title:fullUrl('action=watch'), ['url'] = true }
}
local ul = mw.html.create('ul')
if has_brackets then
ul:addClass(cfg.classes.brackets)
:cssText(font_style)
end
for i, _ in ipairs(displayed_links) do
if displayed_links[i] then add_link(link_descriptions[i], ul, is_mini, font_style) end
end
return ul:done()
end
function p._navbar(args)
-- TODO: We probably don't need both fontstyle and fontcolor...
local font_style = args.fontstyle
local font_color = args.fontcolor
local is_collapsible = args.collapsible
local is_mini = args.mini
local is_plain = args.plain
local collapsible_class = nil
if is_collapsible then
collapsible_class = cfg.classes.collapsible
if not is_plain then is_mini = 1 end
if font_color then
font_style = (font_style or '') .. '; color: ' .. font_color .. ';'
end
end
local navbar_style = args.style
local div = mw.html.create():tag('div')
div
:addClass(cfg.classes.navbar)
:addClass(cfg.classes.plainlinks)
:addClass(cfg.classes.horizontal_list)
:addClass(collapsible_class) -- we made the determination earlier
:cssText(navbar_style)
if is_mini then div:addClass(cfg.classes.mini) end
local box_text = (args.text or cfg.box_text) .. ' '
-- the concatenated space guarantees the box text is separated
if not (is_mini or is_plain) then
div
:tag('span')
:addClass(cfg.classes.box_text)
:cssText(font_style)
:wikitext(box_text)
end
local template = args.template
local displayed_links = choose_links(template, args)
local has_brackets = args.brackets
local title_arg = get_title_arg(is_collapsible, template)
local title_text = args[title_arg] or (':' .. mw.getCurrentFrame():getParent():getTitle())
local list = make_list(title_text, has_brackets, displayed_links, is_mini, font_style)
div:node(list)
if is_collapsible then
local title_text_class
if is_mini then
title_text_class = cfg.classes.collapsible_title_mini
else
title_text_class = cfg.classes.collapsible_title_full
end
div:done()
:tag('div')
:addClass(title_text_class)
:cssText(font_style)
:wikitext(args[1])
end
return mw.getCurrentFrame():extensionTag{
name = 'templatestyles', args = { src = cfg.templatestyles }
} .. tostring(div:done())
end
function p.navbar(frame)
return p._navbar(require('Module:Arguments').getArgs(frame))
end
return p
a5c8d3a8f8beb18984ea7f145ddbdf88a065d23e
Module:Navbar/configuration
828
70
151
2024-01-04T19:26:38Z
Laggardson
2
Created page with "return { ['templatestyles'] = 'Module:Navbar/styles.css', ['box_text'] = 'This box: ', -- default text box when not plain or mini ['title_namespace'] = 'Template', -- namespace to default to for title ['invalid_title'] = 'Invalid title ', ['classes'] = { -- set a line to nil if you don't want it ['navbar'] = 'navbar', ['plainlinks'] = 'plainlinks', -- plainlinks ['horizontal_list'] = 'hlist', -- horizontal list class ['mini'] = 'navbar-mini', -- class ind..."
Scribunto
text/plain
return {
['templatestyles'] = 'Module:Navbar/styles.css',
['box_text'] = 'This box: ', -- default text box when not plain or mini
['title_namespace'] = 'Template', -- namespace to default to for title
['invalid_title'] = 'Invalid title ',
['classes'] = { -- set a line to nil if you don't want it
['navbar'] = 'navbar',
['plainlinks'] = 'plainlinks', -- plainlinks
['horizontal_list'] = 'hlist', -- horizontal list class
['mini'] = 'navbar-mini', -- class indicating small links in the navbar
['this_box'] = 'navbar-boxtext',
['brackets'] = 'navbar-brackets',
-- 'collapsible' is the key for a class to indicate the navbar is
-- setting up the collapsible element in addition to the normal
-- navbar.
['collapsible'] = 'navbar-collapse',
['collapsible_title_mini'] = 'navbar-ct-mini',
['collapsible_title_full'] = 'navbar-ct-full'
}
}
bbf3d86b48a5b40835e8e232ae9821e6bca390ec
Module:Navbox/styles.css
828
71
152
2024-01-04T19:27:38Z
Laggardson
2
Created page with "/* {{pp|small=yes}} */ .navbar { display: inline; font-size: 88%; font-weight: normal; } .navbar-collapse { float: left; text-align: left; } .navbar-boxtext { word-spacing: 0; } .navbar ul { display: inline-block; white-space: nowrap; line-height: inherit; } .navbar-brackets::before { margin-right: -0.125em; content: '[ '; } .navbar-brackets::after { margin-left: -0.125em; content: ' ]'; } .navbar li { word-spacing: -0.125em; } .navbar a > span, .nav..."
sanitized-css
text/css
/* {{pp|small=yes}} */
.navbar {
display: inline;
font-size: 88%;
font-weight: normal;
}
.navbar-collapse {
float: left;
text-align: left;
}
.navbar-boxtext {
word-spacing: 0;
}
.navbar ul {
display: inline-block;
white-space: nowrap;
line-height: inherit;
}
.navbar-brackets::before {
margin-right: -0.125em;
content: '[ ';
}
.navbar-brackets::after {
margin-left: -0.125em;
content: ' ]';
}
.navbar li {
word-spacing: -0.125em;
}
.navbar a > span,
.navbar a > abbr {
text-decoration: inherit;
}
.navbar-mini abbr {
font-variant: small-caps;
border-bottom: none;
text-decoration: none;
cursor: inherit;
}
.navbar-ct-full {
font-size: 114%;
margin: 0 7em;
}
.navbar-ct-mini {
font-size: 114%;
margin: 0 4em;
}
9d4056f949b4f0b159e3d40dfb1a5f01e72f9571
Template:NavboxFate
10
68
153
149
2024-01-04T19:28:49Z
Laggardson
2
wikitext
text/x-wiki
<templatestyles src="Navbox/style.css"></templatestyles>
{{navbox
|title='''[[Fate]]'''
|navboxclass=navbox-marielda
|above= [[Seasons of Hieron]] • [[Autumn in Hieron]] • '''[[Marielda (season)|Marielda]]''' • [[Winter in Hieron]] • [[Spring in Hieron]]
|group1='''Characters'''
|list1=
{{Navbox|child
|group1= Player Characters
|list1= [[Keeley Stewart]] • [[Henrietta Salm]] • [[Maggie Thornback]] • [[Jamie Jesigo]]
|group3=Non-Player Characters
|list3= • ''[[:Category:Marielda characters|Full List]]''
}}
|group2='''Locations'''
|list2= [[The Dirge (location)The Dirge]]
|group3='''Groups'''
|list3={{Navbox|child
|group1=Factions
|list1= [[VaccuCon]]
|group2= Peoples
|list2=
}}
|group5='''Lore'''
|list5=
|group6='''Meta'''
|list6=
|below= ''Fate.''
}}
<noinclude>[[Category:Navboxes]]</noinclude>
e32f6da9d9e2c5718b59c55c301e03bfc2f7f463
154
153
2024-01-04T19:30:29Z
Laggardson
2
wikitext
text/x-wiki
<templatestyles src="Navbox/styles.css"></templatestyles>
{{navbox
|title='''[[Fate]]'''
|navboxclass=navbox-fate
|above= [[Seasons of Hieron]] • [[Autumn in Hieron]] • '''[[Marielda (season)|Marielda]]''' • [[Winter in Hieron]] • [[Spring in Hieron]]
|group1='''Characters'''
|list1=
{{Navbox|child
|group1= Player Characters
|list1= [[Keeley Stewart]] • [[Henrietta Salm]] • [[Maggie Thornback]] • [[Jamie Jesigo]]
|group3=Non-Player Characters
|list3= • ''[[:Category:Marielda characters|Full List]]''
}}
|group2='''Locations'''
|list2= [[The Dirge (location)|The Dirge]]
|group3='''Groups'''
|list3={{Navbox|child
|group1=Factions
|list1= [[VaccuCon]]
|group2= Peoples
|list2=
}}
|group5='''Lore'''
|list5=
|group6='''Meta'''
|list6=
|below= ''Fate.''
}}
<noinclude>[[Category:Navboxes]]</noinclude>
6989a1cf22ac580c8cbafb60ada78ed88e87304b
155
154
2024-01-04T19:30:44Z
Laggardson
2
wikitext
text/x-wiki
<templatestyles src="Navbox/style.css"></templatestyles>
{{navbox
|title='''[[Fate]]'''
|navboxclass=navbox-fate
|above= [[Seasons of Hieron]] • [[Autumn in Hieron]] • '''[[Marielda (season)|Marielda]]''' • [[Winter in Hieron]] • [[Spring in Hieron]]
|group1='''Characters'''
|list1=
{{Navbox|child
|group1= Player Characters
|list1= [[Keeley Stewart]] • [[Henrietta Salm]] • [[Maggie Thornback]] • [[Jamie Jesigo]]
|group3=Non-Player Characters
|list3= • ''[[:Category:Marielda characters|Full List]]''
}}
|group2='''Locations'''
|list2= [[The Dirge (location)|The Dirge]]
|group3='''Groups'''
|list3={{Navbox|child
|group1=Factions
|list1= [[VaccuCon]]
|group2= Peoples
|list2=
}}
|group5='''Lore'''
|list5=
|group6='''Meta'''
|list6=
|below= ''Fate.''
}}
<noinclude>[[Category:Navboxes]]</noinclude>
8c94d6c5e97dee4ef2ac8aaa94bf99d82ad16d75
156
155
2024-01-04T19:31:29Z
Laggardson
2
wikitext
text/x-wiki
<templatestyles src="Navbox/style.css"></templatestyles>
{{navbox
|title='''[[Fate]]'''
|navboxclass=navbox-fate
|above= [[Norfork]]
|group1='''Characters'''
|list1=
{{Navbox|child
|group1= Player Characters
|list1= [[Keeley Stewart]] • [[Henrietta Salm]] • [[Maggie Thornback]] • [[Jamie Jesigo]]
|group3=Non-Player Characters
|list3= • ''[[:Category:Marielda characters|Full List]]''
}}
|group2='''Locations'''
|list2= [[The Dirge (location)|The Dirge]]
|group3='''Groups'''
|list3={{Navbox|child
|group1=Factions
|list1= [[VaccuCon]]
|group2= Peoples
|list2=
}}
|group5='''Lore'''
|list5=
|group6='''Meta'''
|list6=
|below= ''Fate.''
}}
<noinclude>[[Category:Navboxes]]</noinclude>
8db9e3afc8ff032704fea0db3e89cae063e21e2a
Module:Navbox/
828
72
157
2024-01-04T19:34:53Z
Laggardson
2
Created page with "-- -- This module implements {{Navbox}} -- local p = {} local navbar = require('Module:Navbar')._navbar local getArgs -- lazily initialized local args local border local listnums local ODD_EVEN_MARKER = '\127_ODDEVEN_\127' local RESTART_MARKER = '\127_ODDEVEN0_\127' local REGEX_MARKER = '\127_ODDEVEN(%d?)_\127' local function striped(wikitext) -- Return wikitext with markers replaced for odd/even striping. -- Child (subgroup) navboxes are flagged with a category th..."
Scribunto
text/plain
--
-- This module implements {{Navbox}}
--
local p = {}
local navbar = require('Module:Navbar')._navbar
local getArgs -- lazily initialized
local args
local border
local listnums
local ODD_EVEN_MARKER = '\127_ODDEVEN_\127'
local RESTART_MARKER = '\127_ODDEVEN0_\127'
local REGEX_MARKER = '\127_ODDEVEN(%d?)_\127'
local function striped(wikitext)
-- Return wikitext with markers replaced for odd/even striping.
-- Child (subgroup) navboxes are flagged with a category that is removed
-- by parent navboxes. The result is that the category shows all pages
-- where a child navbox is not contained in a parent navbox.
local orphanCat = '[[Category:Navbox orphans]]'
if border == 'subgroup' and args.orphan ~= 'yes' then
-- No change; striping occurs in outermost navbox.
return wikitext .. orphanCat
end
local first, second = 'odd', 'even'
if args.evenodd then
if args.evenodd == 'swap' then
first, second = second, first
else
first = args.evenodd
second = first
end
end
local changer
if first == second then
changer = first
else
local index = 0
changer = function (code)
if code == '0' then
-- Current occurrence is for a group before a nested table.
-- Set it to first as a valid although pointless class.
-- The next occurrence will be the first row after a title
-- in a subgroup and will also be first.
index = 0
return first
end
index = index + 1
return index % 2 == 1 and first or second
end
end
local regex = orphanCat:gsub('([%[%]])', '%%%1')
return (wikitext:gsub(regex, ''):gsub(REGEX_MARKER, changer)) -- () omits gsub count
end
local function processItem(item, nowrapitems)
if item:sub(1, 2) == '{|' then
-- Applying nowrap to lines in a table does not make sense.
-- Add newlines to compensate for trim of x in |parm=x in a template.
return '\n' .. item ..'\n'
end
if nowrapitems == 'yes' then
local lines = {}
for line in (item .. '\n'):gmatch('([^\n]*)\n') do
local prefix, content = line:match('^([*:;#]+)%s*(.*)')
if prefix and not content:match('^<span class="nowrap">') then
line = prefix .. '<span class="nowrap">' .. content .. '</span>'
end
table.insert(lines, line)
end
item = table.concat(lines, '\n')
end
if item:match('^[*:;#]') then
return '\n' .. item ..'\n'
end
return item
end
-- Separate function so that we can evaluate properly whether hlist should
-- be added by the module
local function has_navbar()
return args.navbar ~= 'off' and args.navbar ~= 'plain' and
(args.name or mw.getCurrentFrame():getParent():getTitle():gsub('/sandbox$', '') ~= 'Template:Navbox')
end
local function renderNavBar(titleCell)
if has_navbar() then
titleCell:wikitext(navbar{
args.name,
-- we depend on this being mini = 1 when the navbox module decides
-- to add hlist templatestyles. we also depend on navbar outputting
-- a copy of the hlist templatestyles.
mini = 1,
fontstyle = (args.basestyle or '') .. ';' .. (args.titlestyle or '') .. ';'
})
end
end
--
-- Title row
--
local function renderTitleRow(tbl)
if not args.title then return end
local titleRow = tbl:tag('tr')
if args.titlegroup then
titleRow
:tag('th')
:attr('scope', 'row')
:addClass('navbox-group')
:addClass(args.titlegroupclass)
:cssText(args.basestyle)
:cssText(args.groupstyle)
:cssText(args.titlegroupstyle)
:wikitext(args.titlegroup)
end
local titleCell = titleRow:tag('th'):attr('scope', 'col')
if args.titlegroup then
titleCell
:addClass('navbox-title1')
end
local titleColspan = 2
if args.imageleft then titleColspan = titleColspan + 1 end
if args.image then titleColspan = titleColspan + 1 end
if args.titlegroup then titleColspan = titleColspan - 1 end
titleCell
:cssText(args.basestyle)
:cssText(args.titlestyle)
:addClass('navbox-title')
:addClass(args.titleclass)
:attr('colspan', titleColspan)
renderNavBar(titleCell)
titleCell
:tag('div')
-- id for aria-labelledby attribute
:attr('id', mw.uri.anchorEncode(args.title))
:css('font-size', '114%')
:css('margin', '0 4em')
:wikitext(processItem(args.title))
end
--
-- Above/Below rows
--
local function getAboveBelowColspan()
local ret = 2
if args.imageleft then ret = ret + 1 end
if args.image then ret = ret + 1 end
return ret
end
local function renderAboveRow(tbl)
if not args.above then return end
tbl:tag('tr')
:tag('td')
:addClass('navbox-abovebelow')
:addClass(args.aboveclass)
:cssText(args.basestyle)
:cssText(args.abovestyle)
:attr('colspan', getAboveBelowColspan())
:tag('div')
-- id for aria-labelledby attribute, if no title
:attr('id', args.title and nil or mw.uri.anchorEncode(args.above))
:wikitext(processItem(args.above, args.nowrapitems))
end
local function renderBelowRow(tbl)
if not args.below then return end
tbl:tag('tr')
:tag('td')
:addClass('navbox-abovebelow')
:addClass(args.belowclass)
:cssText(args.basestyle)
:cssText(args.belowstyle)
:attr('colspan', getAboveBelowColspan())
:tag('div')
:wikitext(processItem(args.below, args.nowrapitems))
end
--
-- List rows
--
local function renderListRow(tbl, index, listnum)
local row = tbl:tag('tr')
if index == 1 and args.imageleft then
row
:tag('td')
:addClass('navbox-image')
:addClass(args.imageclass)
:css('width', '1px') -- Minimize width
:css('padding', '0px 2px 0px 0px')
:cssText(args.imageleftstyle)
:attr('rowspan', #listnums)
:tag('div')
:wikitext(processItem(args.imageleft))
end
if args['group' .. listnum] then
local groupCell = row:tag('th')
-- id for aria-labelledby attribute, if lone group with no title or above
if listnum == 1 and not (args.title or args.above or args.group2) then
groupCell
:attr('id', mw.uri.anchorEncode(args.group1))
end
groupCell
:attr('scope', 'row')
:addClass('navbox-group')
:addClass(args.groupclass)
:cssText(args.basestyle)
:css('width', args.groupwidth or '1%') -- If groupwidth not specified, minimize width
groupCell
:cssText(args.groupstyle)
:cssText(args['group' .. listnum .. 'style'])
:wikitext(args['group' .. listnum])
end
local listCell = row:tag('td')
if args['group' .. listnum] then
listCell
:addClass('navbox-list1')
else
listCell:attr('colspan', 2)
end
if not args.groupwidth then
listCell:css('width', '100%')
end
local rowstyle -- usually nil so cssText(rowstyle) usually adds nothing
if index % 2 == 1 then
rowstyle = args.oddstyle
else
rowstyle = args.evenstyle
end
local listText = args['list' .. listnum]
local oddEven = ODD_EVEN_MARKER
if listText:sub(1, 12) == '</div><table' then
-- Assume list text is for a subgroup navbox so no automatic striping for this row.
oddEven = listText:find('<th[^>]*"navbox%-title"') and RESTART_MARKER or 'odd'
end
listCell
:css('padding', '0px')
:cssText(args.liststyle)
:cssText(rowstyle)
:cssText(args['list' .. listnum .. 'style'])
:addClass('navbox-list')
:addClass('navbox-' .. oddEven)
:addClass(args.listclass)
:addClass(args['list' .. listnum .. 'class'])
:tag('div')
:css('padding', (index == 1 and args.list1padding) or args.listpadding)
:wikitext(processItem(listText, args.nowrapitems))
if index == 1 and args.image then
row
:tag('td')
:addClass('navbox-image')
:addClass(args.imageclass)
:css('width', '1px') -- Minimize width
:css('padding', '0px 0px 0px 2px')
:cssText(args.imagestyle)
:attr('rowspan', #listnums)
:tag('div')
:wikitext(processItem(args.image))
end
end
--
-- Tracking categories
--
local function needsHorizontalLists()
if border == 'subgroup' or args.tracking == 'no' then
return false
end
local listClasses = {
['plainlist'] = true, ['hlist'] = true, ['hlist hnum'] = true,
['hlist hwrap'] = true, ['hlist vcard'] = true, ['vcard hlist'] = true,
['hlist vevent'] = true,
}
return not (listClasses[args.listclass] or listClasses[args.bodyclass])
end
-- there are a lot of list classes in the wild, so we have a function to find
-- them and add their TemplateStyles
local function addListStyles()
local frame = mw.getCurrentFrame()
-- TODO?: Should maybe take a table of classes for e.g. hnum, hwrap as above
-- I'm going to do the stupid thing first though
-- Also not sure hnum and hwrap are going to live in the same TemplateStyles
-- as hlist
local function _addListStyles(htmlclass, templatestyles)
local class_args = { -- rough order of probability of use
'bodyclass', 'listclass', 'aboveclass', 'belowclass', 'titleclass',
'navboxclass', 'groupclass', 'titlegroupclass', 'imageclass'
}
local patterns = {
'^' .. htmlclass .. '$',
'%s' .. htmlclass .. '$',
'^' .. htmlclass .. '%s',
'%s' .. htmlclass .. '%s'
}
local found = false
for _, arg in ipairs(class_args) do
for _, pattern in ipairs(patterns) do
if mw.ustring.find(args[arg] or '', pattern) then
found = true
break
end
end
if found then break end
end
if found then
return frame:extensionTag{
name = 'templatestyles', args = { src = templatestyles }
}
else
return ''
end
end
local hlist_styles = ''
-- navbar always has mini = 1, so here (on this wiki) we can assume that
-- we don't need to output hlist styles in navbox again.
if not has_navbar() then
hlist_styles = _addListStyles('hlist', 'Flatlist/styles.css')
end
local plainlist_styles = _addListStyles('plainlist', 'Plainlist/styles.css')
return hlist_styles .. plainlist_styles
end
local function hasBackgroundColors()
for _, key in ipairs({'titlestyle', 'groupstyle', 'basestyle', 'abovestyle', 'belowstyle'}) do
if tostring(args[key]):find('background', 1, true) then
return true
end
end
end
local function hasBorders()
for _, key in ipairs({'groupstyle', 'basestyle', 'abovestyle', 'belowstyle'}) do
if tostring(args[key]):find('border', 1, true) then
return true
end
end
end
local function isIllegible()
-- require('Module:Color contrast') absent on mediawiki.org
return false
end
local function getTrackingCategories()
local cats = {}
if needsHorizontalLists() then table.insert(cats, 'Navigational boxes without horizontal lists') end
if hasBackgroundColors() then table.insert(cats, 'Navboxes using background colours') end
if isIllegible() then table.insert(cats, 'Potentially illegible navboxes') end
if hasBorders() then table.insert(cats, 'Navboxes using borders') end
return cats
end
local function renderTrackingCategories(builder)
local title = mw.title.getCurrentTitle()
if title.namespace ~= 10 then return end -- not in template space
local subpage = title.subpageText
if subpage == 'doc' or subpage == 'sandbox' or subpage == 'testcases' then return end
for _, cat in ipairs(getTrackingCategories()) do
builder:wikitext('[[Category:' .. cat .. ']]')
end
end
--
-- Main navbox tables
--
local function renderMainTable()
local tbl = mw.html.create('table')
:addClass('nowraplinks')
:addClass(args.bodyclass)
if args.title and (args.state ~= 'plain' and args.state ~= 'off') then
if args.state == 'collapsed' then args.state = 'mw-collapsed' end
tbl
:addClass('mw-collapsible')
:addClass(args.state or 'autocollapse')
end
tbl:css('border-spacing', 0)
if border == 'subgroup' or border == 'none' then
tbl
:addClass('navbox-subgroup')
:cssText(args.bodystyle)
:cssText(args.style)
else -- regular navbox - bodystyle and style will be applied to the wrapper table
tbl
:addClass('navbox-inner')
:css('background', 'transparent')
:css('color', 'inherit')
end
tbl:cssText(args.innerstyle)
renderTitleRow(tbl)
renderAboveRow(tbl)
for i, listnum in ipairs(listnums) do
renderListRow(tbl, i, listnum)
end
renderBelowRow(tbl)
return tbl
end
function p._navbox(navboxArgs)
args = navboxArgs
listnums = {}
for k, _ in pairs(args) do
if type(k) == 'string' then
local listnum = k:match('^list(%d+)$')
if listnum then table.insert(listnums, tonumber(listnum)) end
end
end
table.sort(listnums)
border = mw.text.trim(args.border or args[1] or '')
if border == 'child' then
border = 'subgroup'
end
-- render the main body of the navbox
local tbl = renderMainTable()
-- get templatestyles
local frame = mw.getCurrentFrame()
local base_templatestyles = frame:extensionTag{
name = 'templatestyles', args = { src = 'Module:Navbox/styles.css' }
}
local templatestyles = ''
if args.templatestyles and args.templatestyles ~= '' then
templatestyles = frame:extensionTag{
name = 'templatestyles', args = { src = args.templatestyles }
}
end
local res = mw.html.create()
-- 'navbox-styles' exists for two reasons:
-- 1. To wrap the styles to work around phab: T200206 more elegantly. Instead
-- of combinatorial rules, this ends up being linear number of CSS rules.
-- 2. To allow MobileFrontend to rip the styles out with 'nomobile' such that
-- they are not dumped into the mobile view.
if border ~= 'subgroup' then
res:tag('div')
:addClass('navbox-styles')
:addClass('nomobile')
:wikitext(base_templatestyles .. templatestyles)
:done()
end
-- render the appropriate wrapper around the navbox, depending on the border param
if border == 'none' then
local nav = res:tag('div')
:attr('role', 'navigation')
:wikitext(addListStyles())
:node(tbl)
-- aria-labelledby title, otherwise above, otherwise lone group
if args.title or args.above or (args.group1 and not args.group2) then
nav:attr('aria-labelledby', mw.uri.anchorEncode(args.title or args.above or args.group1))
else
nav:attr('aria-label', 'Navbox')
end
elseif border == 'subgroup' then
-- We assume that this navbox is being rendered in a list cell of a
-- parent navbox, and is therefore inside a div with padding:0em 0.25em.
-- We start with a </div> to avoid the padding being applied, and at the
-- end add a <div> to balance out the parent's </div>
res
:wikitext('</div>')
:wikitext(addListStyles())
:node(tbl)
:wikitext('<div>')
else
local nav = res:tag('div')
:attr('role', 'navigation')
:addClass('navbox')
:addClass(args.navboxclass)
:cssText(args.bodystyle)
:cssText(args.style)
:wikitext(addListStyles())
:node(tbl)
-- aria-labelledby title, otherwise above, otherwise lone group
if args.title or args.above or (args.group1 and not args.group2) then
nav:attr('aria-labelledby', mw.uri.anchorEncode(args.title or args.above or args.group1))
else
nav:attr('aria-label', 'Navbox')
end
end
if (args.nocat or 'false'):lower() == 'false' then
renderTrackingCategories(res)
end
return striped(tostring(res))
end
function p.navbox(frame)
if not getArgs then
getArgs = require('Module:Arguments').getArgs
end
args = getArgs(frame, {wrappers = {'Template:Navbox', 'Template:Navbox subgroup'}})
if frame.args.border then
-- This allows Template:Navbox_subgroup to use {{#invoke:Navbox|navbox|border=...}}.
args.border = frame.args.border
end
-- Read the arguments in the order they'll be output in, to make references number in the right order.
local _
_ = args.title
_ = args.above
for i = 1, 20 do
_ = args["group" .. tostring(i)]
_ = args["list" .. tostring(i)]
end
_ = args.below
return p._navbox(args)
end
return p
0138b52c0f1709b177082808740005b88713728d
158
157
2024-01-04T19:35:34Z
Laggardson
2
Blanked the page
Scribunto
text/plain
da39a3ee5e6b4b0d3255bfef95601890afd80709
Template:Seasons
10
73
159
2024-01-04T20:08:11Z
Laggardson
2
Created page with "<templatestyles src="Navbox/style.css"></templatestyles>{{navbox |title= Seasons |titlestyle=background:#fdebbb |basestyle=background:#FFFBE6 |bodystyle=border:2px solid #fdcd5e; padding:0px !important |liststyle=padding:3px;text-align:left |list1= ''[[Fate]]'' • ''[[Norfork]]'' }}<noinclude> [[Category:Navboxes]]</noinclude>"
wikitext
text/x-wiki
<templatestyles src="Navbox/style.css"></templatestyles>{{navbox
|title= Seasons
|titlestyle=background:#fdebbb
|basestyle=background:#FFFBE6
|bodystyle=border:2px solid #fdcd5e; padding:0px !important
|liststyle=padding:3px;text-align:left
|list1=
''[[Fate]]'' • ''[[Norfork]]''
}}<noinclude>
[[Category:Navboxes]]</noinclude>
e4a7c115ec47428dc1c4b0cf06db87949ca4c569
160
159
2024-01-04T20:08:54Z
Laggardson
2
wikitext
text/x-wiki
<templatestyles src="Navbox/style.css"></templatestyles>{{navbox
|title= Seasons
|titlestyle=background:#fdebbb
|basestyle=background:#FF0000
|bodystyle=border:2px solid #fdcd5e; padding:0px !important
|liststyle=padding:3px;text-align:center
|list1=
''[[Fate]]'' • ''[[Norfork]]''
}}<noinclude>
[[Category:Navboxes]]</noinclude>
95e8f869970c9da94e1989c5bd0bd8ec503f1f30
161
160
2024-01-04T20:09:25Z
Laggardson
2
wikitext
text/x-wiki
<templatestyles src="Navbox/style.css"></templatestyles>{{navbox
|title= Seasons
|titlestyle=background:#ff0000
|basestyle=background:#FF0000
|bodystyle=border:2px solid #fdcd5e; padding:0px !important
|liststyle=padding:3px;text-align:center
|list1=
''[[Fate]]'' • ''[[Norfork]]''
}}<noinclude>
[[Category:Navboxes]]</noinclude>
fb7b2b766cd8cb9fe648184c0376ea97bc3f6264
Template:Navbox episode table
10
74
162
2024-01-04T20:15:48Z
Laggardson
2
Created page with "<div class="episode-table-body"> {{{content}}} </div><templatestyles src="Navbox episode table/style.css"></templatestyles>"
wikitext
text/x-wiki
<div class="episode-table-body">
{{{content}}}
</div><templatestyles src="Navbox episode table/style.css"></templatestyles>
d7a57f85d8717c6cfa93d050f3b3213202533592
Template:Navbox episode table/style.css
10
75
163
2024-01-04T20:17:00Z
Laggardson
2
Created page with ".episode-table-body { column-count:1; column-gap:2px; } @media only screen and (min-width:650px) { .episode-table-body { column-count:2; } } @media only screen and (min-width:1000px) { .episode-table-body { column-count:3; } } .episode-table-row { break-inside:avoid; margin-bottom:2px } .episode-table-row:nth-child(odd) { background-color:#f7f7f7 }"
sanitized-css
text/css
.episode-table-body {
column-count:1;
column-gap:2px;
}
@media only screen and (min-width:650px) {
.episode-table-body {
column-count:2;
}
}
@media only screen and (min-width:1000px) {
.episode-table-body {
column-count:3;
}
}
.episode-table-row {
break-inside:avoid;
margin-bottom:2px
}
.episode-table-row:nth-child(odd) {
background-color:#f7f7f7
}
7e641f979823a6a25deb686be74c0e4990073d68
Template:Navbox episode table col
10
76
164
2024-01-04T20:18:20Z
Laggardson
2
Created page with "<div class="episode-table-col" style="flex-grow:1;flex-basis:calc(calc(800px - 100%) * 999)"> {{{rows}}} </div>"
wikitext
text/x-wiki
<div class="episode-table-col" style="flex-grow:1;flex-basis:calc(calc(800px - 100%) * 999)">
{{{rows}}}
</div>
94deae10fa722c421cca04a6b5404ea5ed0eeae1
Template:Navbox episode table row
10
77
165
2024-01-04T20:19:01Z
Laggardson
2
Created page with "<div class="episode-table-row" style="display:flex"><div class="episode-number navbox-group" style="width:3em;text-align:center;flex-shrink:0;padding:0">{{{1}}}</div><div class="episode-title" style="flex-grow:1;padding-left:2px;flex-wrap:nowrap;text-align:left">{{{2}}}</div></div>"
wikitext
text/x-wiki
<div class="episode-table-row" style="display:flex"><div class="episode-number navbox-group" style="width:3em;text-align:center;flex-shrink:0;padding:0">{{{1}}}</div><div class="episode-title" style="flex-grow:1;padding-left:2px;flex-wrap:nowrap;text-align:left">{{{2}}}</div></div>
8530aa0686f36e3900176bce0bac7fb6f0ab1583
MediaWiki:Sidebar
8
3
166
5
2024-01-04T20:26:11Z
Laggardson
2
wikitext
text/x-wiki
*Seasons
**Fate|Fate
**Norfork|Norfork
<br>
*Navigation
** mainpage|mainpage-description
** recentchanges-url|recentchanges
** randompage-url|randompage
** helppage|help-mediawiki
* SEARCH
* TOOLBOX
* LANGUAGES
da631a75c15d44f3ee03535e43f0c7fdc74b96d0
167
166
2024-01-04T20:28:23Z
Laggardson
2
wikitext
text/x-wiki
*Placeholder
*Seasons
**Fate
**Fate
* navigation
** mainpage|mainpage-description
** recentchanges-url|recentchanges
** randompage-url|randompage
** helppage|help-mediawiki
* SEARCH
* TOOLBOX
*Contributors
* LANGUAGES
d288f2460fd1e304f04139775be944b08ca79cac
168
167
2024-01-04T20:29:50Z
Laggardson
2
Undo revision 167 by [[Special:Contributions/Laggardson|Laggardson]] ([[User talk:Laggardson|talk]])
wikitext
text/x-wiki
*Seasons
**Fate|Fate
**Norfork|Norfork
<br>
*Navigation
** mainpage|mainpage-description
** recentchanges-url|recentchanges
** randompage-url|randompage
** helppage|help-mediawiki
* SEARCH
* TOOLBOX
* LANGUAGES
da631a75c15d44f3ee03535e43f0c7fdc74b96d0
Template:Fate episodes
10
78
169
2024-01-04T20:39:33Z
Laggardson
2
Created page with "<templatestyles src="Navbox/style.css"></templatestyles> {{navbox |title= ''[[Marielda (season)|Marielda]]'' [[List of Seasons of Hieron episodes|episodes]] |navboxclass= navbox-marielda |state= collapsed |list1= {{Navbox episode table | content= {{Navbox episode table row| 01 | [[Marielda 01: The City of Light Pt. 1|The City of Light Pt. 1]] }} {{Navbox episode table row| 02 | [[Marielda 02: The City of Light Pt. 2|The City of Light Pt. 2]] }} {{Navbox episode table row..."
wikitext
text/x-wiki
<templatestyles src="Navbox/style.css"></templatestyles>
{{navbox
|title= ''[[Marielda (season)|Marielda]]'' [[List of Seasons of Hieron episodes|episodes]]
|navboxclass= navbox-marielda
|state= collapsed
|list1=
{{Navbox episode table
| content=
{{Navbox episode table row| 01 | [[Marielda 01: The City of Light Pt. 1|The City of Light Pt. 1]] }}
{{Navbox episode table row| 02 | [[Marielda 02: The City of Light Pt. 2|The City of Light Pt. 2]] }}
{{Navbox episode table row| 03 | [[Marielda 03: The Crosstown Job Pt. 1|The Crosstown Job Pt. 1]] }}
{{Navbox episode table row| 04 | [[Marielda 04: The Crosstown Job Pt. 2|The Crosstown Job Pt. 2]] }}
{{Navbox episode table row| 05 | [[Marielda 05: War and Azaleas|War and Azaleas]] }}
{{Navbox episode table row| 06 | [[Marielda 06: The Valentine Affair Pt. 1|The Valentine Affair Pt. 1]] }}
{{Navbox episode table row| 07 | [[Marielda 07: The Valentine Affair Pt. 2|The Valentine Affair Pt. 2]] }}
{{Navbox episode table row| 08 | [[Marielda 08: The Valentine Affair Pt. 3|The Valentine Affair Pt. 3]] }}
{{Navbox episode table row| 09 | [[Marielda 09: The Valentine Affair Pt. 4|The Valentine Affair Pt. 4]] }}
{{Navbox episode table row| 10 | [[Marielda 10: Four Conversations|Four Conversations]] }}
{{Navbox episode table row| 11 | [[Marielda 11: The Killing of the King-God Samothes By The Traitor Prince Maelgwyn Pt. 1|The Killing of the King-God Samothes By The Traitor Prince Maelgwyn Pt. 1]] }}
{{Navbox episode table row| 12 | [[Marielda 12: The Killing of the King-God Samothes By The Traitor Prince Maelgwyn Pt. 2|The Killing of the King-God Samothes By The Traitor Prince Maelgwyn Pt. 2]] }}
{{Navbox episode table row| 13 | [[Marielda 13: The Killing of the King-God Samothes By The Traitor Prince Maelgwyn Pt. 3|The Killing of the King-God Samothes By The Traitor Prince Maelgwyn Pt. 3]] }}
{{Navbox episode table row| 14 | [[Marielda 14: The Killing of the King-God Samothes By The Traitor Prince Maelgwyn Pt. 4|The Killing of the King-God Samothes By The Traitor Prince Maelgwyn Pt. 4]] }}
{{Navbox episode table row| PM | [[Winter in Hieron & Marielda Post Mortem|Post Mortem]] }}
}} }}<noinclude>
[[Category:Navboxes]]</noinclude>
e4cfe381cb7376385a0e117b4688ef5d4dff490a
170
169
2024-01-04T20:43:48Z
Laggardson
2
wikitext
text/x-wiki
<templatestyles src="Navbox/style.css"></templatestyles>
{{navbox
|title= ''[[Marielda (season)|Marielda]]'' [[List of Seasons of Hieron episodes|episodes]]
|navboxclass= navbox-marielda
|state= collapsed
|list1=
{{Navbox episode table
| content=
{{Navbox episode table row| 01 | [[Fate 01: The Dirge Pt. 1|The Dirge Pt. 1]] }}
{{Navbox episode table row| 02 | [[Fate 02: The Dirge Pt. 2|The Dirge Pt. 2]] }}
{{Navbox episode table row| 03 | [[Fate 03: Geringer Pt. 1|Geringer Pt. 1]] }}
{{Navbox episode table row| 04 | [[Fate 04: Geringer Pt. 2|Geringer Pt. 2]] }}
{{Navbox episode table row| 05 | [[Fate 05: Geringer Pt. 3|Geringer Pt. 3]] }}
{{Navbox episode table row| 06 | [[Fate 06: Silky & The Solutions Pt. 1|Silky & The Solutions Pt. 1]] }}
{{Navbox episode table row| 07 | [[Fate 07: Silky & The Solutions Pt. 2|Silky & The Solutions Pt. 2]] }}
{{Navbox episode table row| 08 | [[Fate 08: Silky & The Solutions Pt. 3|Silky & The Solutions Pt. 3]] }}
{{Navbox episode table row| 09 | [[Fate 09: MRS Montessori Pt. 1|MRS Montessori Pt. 1]] }}
{{Navbox episode table row| 10 | [[Fate 10: MRS Montessori Pt. 2|MRS Montessori Pt. 2]] }}
{{Navbox episode table row| 11 | [[Fate 11: MRS Montessori Pt. 3|MRS Montessori Pt. 3]] }}
{{Navbox episode table row| 12 | [[Fate 12: Vacation Pt. 1|Vacation Pt. 1]] }}
{{Navbox episode table row| 13 | [[Fate 13: Vacation Pt. 2|Vacation Pt. 2]] }}
{{Navbox episode table row| 14 | [[Fate 14: Vacation Pt. 3|Vacation Pt. 3]] }}
{{Navbox episode table row| 15 | [[Fate 15: Vacation Pt. 4|Vacation Pt. 4]] }}
}} }}<noinclude>
[[Category:Navboxes]]</noinclude>
4f0533d4bc20d3282bdea92e5618010bde770a55
171
170
2024-01-04T20:44:36Z
Laggardson
2
wikitext
text/x-wiki
<templatestyles src="Navbox/style.css"></templatestyles>
{{navbox
|title= ''[[Fate]]'' [[List of Fate episodes|episodes]]
|navboxclass= navbox-fate
|state= collapsed
|list1=
{{Navbox episode table
| content=
{{Navbox episode table row| 01 | [[Fate 01: The Dirge Pt. 1|The Dirge Pt. 1]] }}
{{Navbox episode table row| 02 | [[Fate 02: The Dirge Pt. 2|The Dirge Pt. 2]] }}
{{Navbox episode table row| 03 | [[Fate 03: Geringer Pt. 1|Geringer Pt. 1]] }}
{{Navbox episode table row| 04 | [[Fate 04: Geringer Pt. 2|Geringer Pt. 2]] }}
{{Navbox episode table row| 05 | [[Fate 05: Geringer Pt. 3|Geringer Pt. 3]] }}
{{Navbox episode table row| 06 | [[Fate 06: Silky & The Solutions Pt. 1|Silky & The Solutions Pt. 1]] }}
{{Navbox episode table row| 07 | [[Fate 07: Silky & The Solutions Pt. 2|Silky & The Solutions Pt. 2]] }}
{{Navbox episode table row| 08 | [[Fate 08: Silky & The Solutions Pt. 3|Silky & The Solutions Pt. 3]] }}
{{Navbox episode table row| 09 | [[Fate 09: MRS Montessori Pt. 1|MRS Montessori Pt. 1]] }}
{{Navbox episode table row| 10 | [[Fate 10: MRS Montessori Pt. 2|MRS Montessori Pt. 2]] }}
{{Navbox episode table row| 11 | [[Fate 11: MRS Montessori Pt. 3|MRS Montessori Pt. 3]] }}
{{Navbox episode table row| 12 | [[Fate 12: Vacation Pt. 1|Vacation Pt. 1]] }}
{{Navbox episode table row| 13 | [[Fate 13: Vacation Pt. 2|Vacation Pt. 2]] }}
{{Navbox episode table row| 14 | [[Fate 14: Vacation Pt. 3|Vacation Pt. 3]] }}
{{Navbox episode table row| 15 | [[Fate 15: Vacation Pt. 4|Vacation Pt. 4]] }}
}} }}<noinclude>
[[Category:Navboxes]]</noinclude>
4599c5bf0f7836d27c50eb8c5c063877f8aaede5
List of Norfork episodes
0
61
172
131
2024-01-04T20:54:56Z
Laggardson
2
wikitext
text/x-wiki
Episodes of Season 2: ''[[Norfork]]'', which ran from October, 2022 to present.
{{Episode table | background=#FF0000 | season=2 | title=15 | airdate=10 | aux2=9 | aux2T=Runtime
|episodes=
{{Episode list
|EpisodeNumber2=00
|Title=[[Norfork 00: The Ground Itself|The Ground Itself]]
|AltDate=
|Aux2=1hr 54min
|ShortSummary=The cast collaboratively builds the world of Norfork using Everest Pipkin’s The Ground Itself.
|LineColor=FF0000
}}
{{Episode list
|EpisodeNumber2=01
|Title=[[Norfork 01: Messages|Messages]]
|AltDate=
|Aux2=1hr 32min
|ShortSummary= Welcome to Norfork - you need to leave. Kelly receives unexpected visitors. Rabbit has a performance review. Nammi gets a call that will change everything.
|LineColor=FF0000
}}
{{Episode list
|EpisodeNumber2=02
|Title=[[Norfork 02: Double-Take|Double-Take]]
|AltDate=
|Aux2=1hr 11min
|ShortSummary= The trio investigate a mysterious call. Kelly makes a plea. Nammi goes live. Rabbit loses focus at a crucial moment.
|LineColor=FF0000
}}
{{Episode list
|EpisodeNumber2=03
|Title=[[Norfork 03: The Right To Remain Silent|The Right To Remain Silent]]
|AltDate=
|Aux2=1hr 5min
|ShortSummary= The trio must decide what to do after a new problem falls in their lap and they are forced to separate. Kelly follows a lead. Nammi tells the truth. Rabbit gets a new job.
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=04
|Title=[[Norfork 04: Stay In Touch|Stay In Touch]]
|AltDate=
|Aux2=1hr 3min
|ShortSummary= Scattered across Norfork and The City and dealing with an array of new problems, the trio make some tough decisions. Nammi makes a deal. Kelly returns to the scene of the crime. Rabbit deals with a personal tragedy.
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=05
|Title=[[Norfork 05: Bedfellows|Bedfellows]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=06
|Title=[[Norfork 06: A Formal Introduction|A Formal Introduction]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=07
|Title=[[Norfork 07: Godly Naivete|Godly Naivete]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=08
|Title=[[Norfork 08: Mementos|Mementos]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=09
|Title=[[Norfork 09: Chance Encounters|Chance Encounters]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=10
|Title=[[Norfork 10: Norfork At Large|Norfork At Large]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=11
|Title=[[Norfork 11: Invasion|Invasion]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=12
|Title=[[Norfork 12: One Last Summer Night|One Last Summer Night]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=13
|Title=[[Norfork 13: What Justice Demands|What Justice Demands]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=14
|Title=[[Norfork 14: Simon Says|Simon Says]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=15
|Title=[[Norfork 15: The Creature & Me|The Creature & Me]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=16
|Title=[[Norfork 16: Leave, But Don't Leave Me|Leave, But Don't Leave Me]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=17
|Title=[[Norfork 17: Bitten|Bitten]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=18
|Title=[[Norfork 18: Incursion|Incursion]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=19
|Title=[[Norfork 19: Samageddon|Samageddon]]
|AltDate=
|Aux2=
|ShortSummary=Kingdom #2, Pt. 1
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=20
|Title=[[Norfork 20: Murphy's Law|Murphy's Law]]
|AltDate=
|Aux2=
|ShortSummary= Kingdom #2, Pt. 2
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=21
|Title=[[Norfork 21: Cards on the Table Pt. 1|Cards on the Table Pt. 1]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=22
|Title=[[Norfork 22: Cards on the Table Pt. 2|Cards on the Table Pt. 2]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=23
|Title=[[Norfork 23: Fugitive|Fugitive]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=24
|Title=[[Norfork 24: The Garden Pt. 1|The Garden Pt. 1]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=25
|Title=[[Norfork 25: The Garden Pt. 2|The Garden Pt. 2]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=26
|Title=[[Norfork 26: Where There's Smoke|Where There's Smoke]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=27
|Title=[[]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=28
|Title=[[]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
}}
aec5afb74ed8e6fdd83d7163e2c3fab9b81d7f6d
173
172
2024-01-04T21:04:54Z
Laggardson
2
wikitext
text/x-wiki
Episodes of Season 2: ''[[Norfork]]'', which ran from October, 2022 to present.
{{Episode table | background=#FF0000 | season=2 | title=15 | airdate=10 | aux2=9 | aux2T=Runtime
|episodes=
{{Episode list
|EpisodeNumber2=00
|Title=[[Norfork 00: The Ground Itself|The Ground Itself]]
|AltDate=
|Aux2=1hr 54min
|ShortSummary=The cast collaboratively builds the world of Norfork using Everest Pipkin’s The Ground Itself.
|LineColor=FF0000
}}
{{Episode list
|EpisodeNumber2=01
|Title=[[Norfork 01: Messages|Messages]]
|AltDate=
|Aux2=1hr 32min
|ShortSummary= Welcome to Norfork - you need to leave. Kelly receives unexpected visitors. Rabbit has a performance review. Nammi gets a call that will change everything.
|LineColor=FF0000
}}
{{Episode list
|EpisodeNumber2=02
|Title=[[Norfork 02: Double-Take|Double-Take]]
|AltDate=
|Aux2=1hr 11min
|ShortSummary= The trio investigate a mysterious call. Kelly makes a plea. Nammi goes live. Rabbit loses focus at a crucial moment.
|LineColor=FF0000
}}
{{Episode list
|EpisodeNumber2=03
|Title=[[Norfork 03: The Right To Remain Silent|The Right To Remain Silent]]
|AltDate=
|Aux2=1hr 5min
|ShortSummary= The trio must decide what to do after a new problem falls in their lap and they are forced to separate. Kelly follows a lead. Nammi tells the truth. Rabbit gets a new job.
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=04
|Title=[[Norfork 04: Stay In Touch|Stay In Touch]]
|AltDate=
|Aux2=1hr 3min
|ShortSummary= Scattered across Norfork and The City and dealing with an array of new problems, the trio make some tough decisions. Nammi makes a deal. Kelly returns to the scene of the crime. Rabbit deals with a personal tragedy.
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=05
|Title=[[Norfork 05: Bedfellows|Bedfellows]]
|AltDate=
|Aux2=
|ShortSummary= Safe for the moment, the trio reconvenes. Rabbit reconnects with an old friend. Nammi feeds the hungry. Kelly tells a lie, and makes a plea.
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=06
|Title=[[Norfork 06: A Formal Introduction|A Formal Introduction]]
|AltDate=
|Aux2=1hr 5min
|ShortSummary=As the trio debate their next move the night grows dark, the shadows grow long, and their prey reveals itself to be more hunter than hunted… Nammi comes out swinging. Rabbit puts on their most charming face. Kelly’s faith in his friends is challenged by a revelation.
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=07
|Title=[[Norfork 07: Godly Naivete|Godly Naivete]]
|AltDate=
|Aux2=1hr 12min
|ShortSummary=Brooding over recent revelations, the trio’s investigation leads deeper. But with tensions high, and an adversary that could be lurking behind any corner, are they prepared for what they might find? Kelly get changed. Rabbit creates an urban legend. Nammi sets the stage.
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=08
|Title=[[Norfork 08: Mementos|Mementos]]
|AltDate=
|Aux2=1hr 42min
|ShortSummary=Arc #1 Finale. Through a door, and into a nightmare. Nammi shows off her skills. Kelly gets lucky. Rabbit is caught between two worlds - and it might just rip them apart...
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=09
|Title=[[Norfork 09: Chance Encounters|Chance Encounters]]
|AltDate=
|Aux2=2hr 4min
|ShortSummary=Recovering from their fight against the Gateway Demon, the trio attempt to return to their normal lives - but they each find someone in their way. Nammi’s past and present collide. Rabbit unmasks a truth. Kelly finds himself pushed to the edge, and beyond.
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=10
|Title=[[Norfork 10: Norfork At Large|Norfork At Large]]
|AltDate=
|Aux2=2hr 2min
|ShortSummary=While Rabbit, Kelly, and Nammi rest, the town of Norfork defends itself from threats both within and without.
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=11
|Title=[[Norfork 11: Invasion|Invasion]]
|AltDate=
|Aux2=1hr 35min
|ShortSummary=An ominous new threat to Norfork begins to invade the trio's lives. Kelly presses his investigations. Rabbit tries to make friends. Nammi struggles to adapt to a new position.
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=12
|Title=[[Norfork 12: One Last Summer Night|One Last Summer Night]]
|AltDate=
|Aux2=1hr 28min
|ShortSummary=A long-awaited confrontation leaves the trio looking for safe harbor. And hey, where's safer than home? Kelly confronts Carmichael, face-to-face. Nammi picks favorites. Rabbit's worlds are drawn closer and closer...
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=13
|Title=[[Norfork 13: What Justice Demands|What Justice Demands]]
|AltDate=
|Aux2=1hr 21min
|ShortSummary=After a night to themselves, the trio go in search of answers surrounding a mysterious police-scanner message in the subway tunnels of the City. Kelly draws up plans. Rabbit draws attention. Nammi draws her weapon.
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=14
|Title=[[Norfork 14: Simon Says|Simon Says]]
|AltDate=
|Aux2=1hr 45min
|ShortSummary=In opposite ends the City hospital, the trio's investigations take two equally unexpected turns, and they must decide whether anyone can be trusted. Rabbit goes to the doctor. Nammi probes for answers. Kelly confirms a theory.
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=15
|Title=[[Norfork 15: The Creature & Me|The Creature & Me]]
|AltDate=
|Aux2=1hr 30min
|ShortSummary=With new allies in tow and the scale of the current danger coming sharply into focus, the trio plan a meetup at one of their usual haunts - but how do you hunt a foe that knows your every move? Rabbit gets back to basics. Nammi realizes her mistake. Kelly loses control.
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=16
|Title=[[Norfork 16: Leave, But Don't Leave Me|Leave, But Don't Leave Me]]
|AltDate=
|Aux2=2hr
|ShortSummary=Headed to Cold’s house for help against an all-consuming threat, the trio are forced to confront their priorities. Kelly goes for broke. Nammi faces the stakes. Rabbit is confronted with an awful, life-changing choice.
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=17
|Title=[[Norfork 17: Bitten|Bitten]]
|AltDate=
|Aux2=1hr 20min
|ShortSummary=A dumpster. A rooftop. A hidden closet. As the Strangleworm closes in on the people they love and they find allies becoming enemies, the trio make desperate moves to try and get ahead. Kelly makes a promise. Nammi steels some nerves, and calms others. Rabbit makes a daring bid for control of their life.
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=18
|Title=[[Norfork 18: Incursion|Incursion]]
|AltDate=
|Aux2=1hr 35min
|ShortSummary=Arc #2 finale. With only hours left before Norfork loses itself entirely to the exponential threat to the Strangleworm, the trio make one final play for the fate of their home. But how many losses turn a victory to a defeat?
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=19
|Title=[[Norfork 19: Samageddon|Samageddon]]
|AltDate=
|Aux2=1hr 39min
|ShortSummary=Kingdom #2, Pt. 1
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=20
|Title=[[Norfork 20: Murphy's Law|Murphy's Law]]
|AltDate=
|Aux2=
|ShortSummary= Kingdom #2, Pt. 2
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=21
|Title=[[Norfork 21: Cards on the Table Pt. 1|Cards on the Table Pt. 1]]
|AltDate=
|Aux2=1hr 23min
|ShortSummary=With the threat of the Strangleworm now behind them, the trio turn their attention back to their own lives. Rabbit dresses up. Nammi attends to her parole. Kelly gathers allies, and merits out justice.
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=22
|Title=[[Norfork 22: Cards on the Table Pt. 2|Cards on the Table Pt. 2]]
|AltDate=
|Aux2=1hr 28min
|ShortSummary=As quiet months slip by in Norfork, the trio find themselves at odds with the people closest to them. Rabbit follows up. Nammi faces family. Kelly finds the truth.
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=23
|Title=[[Norfork 23: Fugitive|Fugitive]]
|AltDate=
|Aux2=1hr 51min
|ShortSummary=Someone new arrives in Norfork. Kelly works overtime. Rabbit's research yields a promising lead. Nammi, oh Nammi...
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=24
|Title=[[Norfork 24: The Garden Pt. 1|The Garden Pt. 1]]
|AltDate=
|Aux2=1hr 15min
|ShortSummary=Muddy, darkened skies fortell an ending, closer than most of us would like to think. The lost daughter graces this land again, in search of absolution.
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=25
|Title=[[Norfork 25: The Garden Pt. 2|The Garden Pt. 2]]
|AltDate=
|Aux2=1hr 3min
|ShortSummary=The melody of hope becomes a fallow tune echoing from the back of a parched, pale throat. The lost daughter walks to the end of the world.
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=26
|Title=[[Norfork 26: Where There's Smoke|Where There's Smoke]]
|AltDate=
|Aux2=1hr 43min
|ShortSummary=As a winter chill settles over Norfork, the trio reunites alongside new friends. But from the haze that connected them, something darker emerges too. And where there's smoke... Nammi arrives home. Rabbit rushes in. Kelly asks for help. Skidemour makes a deal.
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=27
|Title=[[]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
{{Episode list
|EpisodeNumber2=28
|Title=[[]]
|AltDate=
|Aux2=
|ShortSummary=
|LineColor=FFB27B
}}
}}
8b69a1747841c7a509287fa43714cf5c78cb8550
Kelly Aberdeen
0
17
174
101
2024-01-04T21:08:49Z
Laggardson
2
/* Abilities */
wikitext
text/x-wiki
{{Infobox Character
|color_theme =
|title = Kelly Aberdeen
|playbook = The Crooked
|place_of_origin = [[Norfork (City)|Norfork]]
|player = [[William White]]
|image1 = [[File:Kelly_Aberdeen.png]]
|aliases = The Cryptid
|season = ''[[Norfork]]''
|pronouns = he/him
|game = [[Monster of the Week]]
|caption1 = test of caption
|debut = [[Norfork 01: Messages]]
}}
== Appearance ==
== Personality ==
== Background ==
== Abilities ==
'''Burglar'''. When you break into a secure location, roll +Sharp. On a 10+ pick three, on a 7-9 pick two: you get in undetected, you get out undetected, you don’t leave a mess, you find what you were after.
'''Deal with the Devil''': You sold your soul to the Devil. Pick one or two things you got out of the deal: wealth, fame, youth, sensual gratification, skill (add +1 to two ratings). Payment is due either when you die, in six months (if you picked two things) or otherwise in a year.
'''Guardian''': You have a mystical ally (perhaps a spirit, alien, or cryptid) who helps and defends you. Define them, and their powers, with the Keeper’s agreement. Their look is one of: invisible, an intangible spirit thing, a weird creature, disguised as an animal, or disguised as a person.
=== Advancements ===
{{#spoiler:show=Spoilers for Episode 3|hide=Spoilers for Episode 3|+1 Sharp}}
'''+1 Sharp''' (episode)
'''Precise Strike'''. When you inflict harm on a monster, you can aim for a weak spot. Roll +Tough. On a 10+ you inflict +2 harm. On a 7-9 you inflict +1 harm.On a miss, you leave yourself open to the monster. (episode)
'''Devastating'''. When you inflict harm, you may inflict +1 harm. (Ep17)
'''Crew'''. You have a regular crew, a team of three or four people who will help you out with pretty much anything. They count as a team. (Ep20)
==Gallery==
[[File:Kelly_Aberdeen.png|200px|thumb|left|Caption]]
== Notes ==
{{Reflist|group=note}}
== References ==
{{Reflist}}
[[Category:PCs]]
[[Category:Norfork characters]]
e6d67fee0b508d3bc8a4abe59a41512c510b2867
175
174
2024-01-04T21:10:46Z
Laggardson
2
/* Advancements */
wikitext
text/x-wiki
{{Infobox Character
|color_theme =
|title = Kelly Aberdeen
|playbook = The Crooked
|place_of_origin = [[Norfork (City)|Norfork]]
|player = [[William White]]
|image1 = [[File:Kelly_Aberdeen.png]]
|aliases = The Cryptid
|season = ''[[Norfork]]''
|pronouns = he/him
|game = [[Monster of the Week]]
|caption1 = test of caption
|debut = [[Norfork 01: Messages]]
}}
== Appearance ==
== Personality ==
== Background ==
== Abilities ==
'''Burglar'''. When you break into a secure location, roll +Sharp. On a 10+ pick three, on a 7-9 pick two: you get in undetected, you get out undetected, you don’t leave a mess, you find what you were after.
'''Deal with the Devil''': You sold your soul to the Devil. Pick one or two things you got out of the deal: wealth, fame, youth, sensual gratification, skill (add +1 to two ratings). Payment is due either when you die, in six months (if you picked two things) or otherwise in a year.
'''Guardian''': You have a mystical ally (perhaps a spirit, alien, or cryptid) who helps and defends you. Define them, and their powers, with the Keeper’s agreement. Their look is one of: invisible, an intangible spirit thing, a weird creature, disguised as an animal, or disguised as a person.
=== Advancements ===
{{#spoiler:show=Spoilers for Episode 3|hide=Spoilers for Episode 3|'''+1 Sharp'''}}
{{#spoiler:show=Spoilers for Episode #|hide=Spoilers for Episode #|'''Precise Strike'''. When you inflict harm on a monster, you can aim for a weak spot. Roll +Tough. On a 10+ you inflict +2 harm. On a 7-9 you inflict +1 harm.On a miss, you leave yourself open to the monster.}}
{{#spoiler:show=Spoilers for Episode 17|hide=Spoilers for Episode 17|'''Devastating'''. When you inflict harm, you may inflict +1 harm.}}
{{#spoiler:show=Spoilers for Episode 20|hide=Spoilers for Episode 20|'''Crew'''. You have a regular crew, a team of three or four people who will help you out with pretty much anything. They count as a team.}}
==Gallery==
[[File:Kelly_Aberdeen.png|200px|thumb|left|Caption]]
== Notes ==
{{Reflist|group=note}}
== References ==
{{Reflist}}
[[Category:PCs]]
[[Category:Norfork characters]]
5916ac3cfe01993d9fe9c37e50a0c99ba461cd40
176
175
2024-01-04T21:11:36Z
Laggardson
2
/* Advancements */
wikitext
text/x-wiki
{{Infobox Character
|color_theme =
|title = Kelly Aberdeen
|playbook = The Crooked
|place_of_origin = [[Norfork (City)|Norfork]]
|player = [[William White]]
|image1 = [[File:Kelly_Aberdeen.png]]
|aliases = The Cryptid
|season = ''[[Norfork]]''
|pronouns = he/him
|game = [[Monster of the Week]]
|caption1 = test of caption
|debut = [[Norfork 01: Messages]]
}}
== Appearance ==
== Personality ==
== Background ==
== Abilities ==
'''Burglar'''. When you break into a secure location, roll +Sharp. On a 10+ pick three, on a 7-9 pick two: you get in undetected, you get out undetected, you don’t leave a mess, you find what you were after.
'''Deal with the Devil''': You sold your soul to the Devil. Pick one or two things you got out of the deal: wealth, fame, youth, sensual gratification, skill (add +1 to two ratings). Payment is due either when you die, in six months (if you picked two things) or otherwise in a year.
'''Guardian''': You have a mystical ally (perhaps a spirit, alien, or cryptid) who helps and defends you. Define them, and their powers, with the Keeper’s agreement. Their look is one of: invisible, an intangible spirit thing, a weird creature, disguised as an animal, or disguised as a person.
=== Advancements ===
{{#spoiler:show=Spoilers for Episode 3|hide=Spoilers for Episode 3|'''+1 Sharp'''}} <br>
{{#spoiler:show=Spoilers for Episode #|hide=Spoilers for Episode #|'''Precise Strike'''. When you inflict harm on a monster, you can aim for a weak spot. Roll +Tough. On a 10+ you inflict +2 harm. On a 7-9 you inflict +1 harm.On a miss, you leave yourself open to the monster.}} <br>
{{#spoiler:show=Spoilers for Episode 17|hide=Spoilers for Episode 17|'''Devastating'''. When you inflict harm, you may inflict +1 harm.}} <br>
{{#spoiler:show=Spoilers for Episode 20|hide=Spoilers for Episode 20|'''Crew'''. You have a regular crew, a team of three or four people who will help you out with pretty much anything. They count as a team.}}
==Gallery==
[[File:Kelly_Aberdeen.png|200px|thumb|left|Caption]]
== Notes ==
{{Reflist|group=note}}
== References ==
{{Reflist}}
[[Category:PCs]]
[[Category:Norfork characters]]
d23c0a829f6e98702b23ef2ce2bb380a0d4f462a
177
176
2024-01-04T21:13:32Z
Laggardson
2
/* Appearance */
wikitext
text/x-wiki
{{Infobox Character
|color_theme =
|title = Kelly Aberdeen
|playbook = The Crooked
|place_of_origin = [[Norfork (City)|Norfork]]
|player = [[William White]]
|image1 = [[File:Kelly_Aberdeen.png]]
|aliases = The Cryptid
|season = ''[[Norfork]]''
|pronouns = he/him
|game = [[Monster of the Week]]
|caption1 = test of caption
|debut = [[Norfork 01: Messages]]
}}
== Appearance ==
Kelly is a trans man. He's thin but shredded (like a Bruce Lee type), 5'2" brown skin (latine/x) with dark brown curly, moody almost k-pop emo hair, except curly and not terribly long (longer on top, shorter on the sides and back).
He wears mostly loose fitting black tops/button ups, but tattered skinny black pants and black combat boots. sharp facial features and thin rounded glasses.
Kelly is linked to an entity known as The Butcher, or just "[[Butch]]" - a shadowy, humanoid figure.
== Personality ==
== Background ==
== Abilities ==
'''Burglar'''. When you break into a secure location, roll +Sharp. On a 10+ pick three, on a 7-9 pick two: you get in undetected, you get out undetected, you don’t leave a mess, you find what you were after.
'''Deal with the Devil''': You sold your soul to the Devil. Pick one or two things you got out of the deal: wealth, fame, youth, sensual gratification, skill (add +1 to two ratings). Payment is due either when you die, in six months (if you picked two things) or otherwise in a year.
'''Guardian''': You have a mystical ally (perhaps a spirit, alien, or cryptid) who helps and defends you. Define them, and their powers, with the Keeper’s agreement. Their look is one of: invisible, an intangible spirit thing, a weird creature, disguised as an animal, or disguised as a person.
=== Advancements ===
{{#spoiler:show=Spoilers for Episode 3|hide=Spoilers for Episode 3|'''+1 Sharp'''}} <br>
{{#spoiler:show=Spoilers for Episode #|hide=Spoilers for Episode #|'''Precise Strike'''. When you inflict harm on a monster, you can aim for a weak spot. Roll +Tough. On a 10+ you inflict +2 harm. On a 7-9 you inflict +1 harm.On a miss, you leave yourself open to the monster.}} <br>
{{#spoiler:show=Spoilers for Episode 17|hide=Spoilers for Episode 17|'''Devastating'''. When you inflict harm, you may inflict +1 harm.}} <br>
{{#spoiler:show=Spoilers for Episode 20|hide=Spoilers for Episode 20|'''Crew'''. You have a regular crew, a team of three or four people who will help you out with pretty much anything. They count as a team.}}
==Gallery==
[[File:Kelly_Aberdeen.png|200px|thumb|left|Caption]]
== Notes ==
{{Reflist|group=note}}
== References ==
{{Reflist}}
[[Category:PCs]]
[[Category:Norfork characters]]
6ecb486614263045585fe3b23ddef8fdfb0e4df8
178
177
2024-01-04T21:16:34Z
Laggardson
2
/* Background */
wikitext
text/x-wiki
{{Infobox Character
|color_theme =
|title = Kelly Aberdeen
|playbook = The Crooked
|place_of_origin = [[Norfork (City)|Norfork]]
|player = [[William White]]
|image1 = [[File:Kelly_Aberdeen.png]]
|aliases = The Cryptid
|season = ''[[Norfork]]''
|pronouns = he/him
|game = [[Monster of the Week]]
|caption1 = test of caption
|debut = [[Norfork 01: Messages]]
}}
== Appearance ==
Kelly is a trans man. He's thin but shredded (like a Bruce Lee type), 5'2" brown skin (latine/x) with dark brown curly, moody almost k-pop emo hair, except curly and not terribly long (longer on top, shorter on the sides and back).
He wears mostly loose fitting black tops/button ups, but tattered skinny black pants and black combat boots. sharp facial features and thin rounded glasses.
Kelly is linked to an entity known as The Butcher, or just "[[Butch]]" - a shadowy, humanoid figure.
== Personality ==
== Background ==
Kelly grew up in Norfork. After losing his parents and having his home seized by the City for a failure to keep up on mortgage payments, Kelly began to angrily seek out ways of taking back what he felt was his.
He stumbled onto the forums of [[Jamie Jesigo]], and Kelly decided to take up a vigilante mantle of his own: The Cryptid. He initially attempted to be turned into a vampire, but quickly discovered that he was immune to being turned into a magical creature of any kind.
While investigating the death of [[Jimmy Domal]] at the headquarters of the [[City Police]], as The Cryptid, Kelly was caught by [[Ripley Adams|Det. Ripley Adams]], who attacked and nearly killed him. Right as Kelly's life was slipping away, he was offered salvation by a mysterious entity called The Butcher (now known just as "[[Butch]]"), who told him it could save him and give him the ability to do the things he wanted to do if he allowed it in. Kelly consented, and managed to fight off Det. Ripley Adams and escape.
In an attempt to learn more about the death of Jimmy Domal, Kelly approached [[Carmichael]] and offered to let himself be turned into a vampiric thrall in exchange for access to sources of information about Jimmy's death. After learning as much as he could, Kelly offered himself to Carmichael to be turned, but quickly discovered that he could not be turned, and escaped in the confusion.
== Abilities ==
'''Burglar'''. When you break into a secure location, roll +Sharp. On a 10+ pick three, on a 7-9 pick two: you get in undetected, you get out undetected, you don’t leave a mess, you find what you were after.
'''Deal with the Devil''': You sold your soul to the Devil. Pick one or two things you got out of the deal: wealth, fame, youth, sensual gratification, skill (add +1 to two ratings). Payment is due either when you die, in six months (if you picked two things) or otherwise in a year.
'''Guardian''': You have a mystical ally (perhaps a spirit, alien, or cryptid) who helps and defends you. Define them, and their powers, with the Keeper’s agreement. Their look is one of: invisible, an intangible spirit thing, a weird creature, disguised as an animal, or disguised as a person.
=== Advancements ===
{{#spoiler:show=Spoilers for Episode 3|hide=Spoilers for Episode 3|'''+1 Sharp'''}} <br>
{{#spoiler:show=Spoilers for Episode #|hide=Spoilers for Episode #|'''Precise Strike'''. When you inflict harm on a monster, you can aim for a weak spot. Roll +Tough. On a 10+ you inflict +2 harm. On a 7-9 you inflict +1 harm.On a miss, you leave yourself open to the monster.}} <br>
{{#spoiler:show=Spoilers for Episode 17|hide=Spoilers for Episode 17|'''Devastating'''. When you inflict harm, you may inflict +1 harm.}} <br>
{{#spoiler:show=Spoilers for Episode 20|hide=Spoilers for Episode 20|'''Crew'''. You have a regular crew, a team of three or four people who will help you out with pretty much anything. They count as a team.}}
==Gallery==
[[File:Kelly_Aberdeen.png|200px|thumb|left|Caption]]
== Notes ==
{{Reflist|group=note}}
== References ==
{{Reflist}}
[[Category:PCs]]
[[Category:Norfork characters]]
c5c7bae277a49cb219d11e9e0616920647c52f78
179
178
2024-01-04T21:19:38Z
Laggardson
2
/* Appearance */
wikitext
text/x-wiki
{{Infobox Character
|color_theme =
|title = Kelly Aberdeen
|playbook = The Crooked
|place_of_origin = [[Norfork (City)|Norfork]]
|player = [[William White]]
|image1 = [[File:Kelly_Aberdeen.png]]
|aliases = The Cryptid
|season = ''[[Norfork]]''
|pronouns = he/him
|game = [[Monster of the Week]]
|caption1 = test of caption
|debut = [[Norfork 01: Messages]]
}}
== Appearance ==
Kelly is a trans man. He's thin but shredded (like a Bruce Lee type), 5'2" brown skin (latine/x) with dark brown curly, moody almost k-pop emo hair, except curly and not terribly long (longer on top, shorter on the sides and back).
He wears mostly loose fitting black tops/button ups, but tattered skinny black pants and black combat boots. sharp facial features and thin rounded glasses.
== Background ==
Kelly grew up in Norfork. After losing his parents and having his home seized by the City for a failure to keep up on mortgage payments, Kelly began to angrily seek out ways of taking back what he felt was his.
He stumbled onto the forums of [[Jamie Jesigo]], and Kelly decided to take up a vigilante mantle of his own: The Cryptid. He initially attempted to be turned into a vampire, but quickly discovered that he was immune to being turned into a magical creature of any kind.
While investigating the death of [[Jimmy Domal]] at the headquarters of the [[City Police]], as The Cryptid, Kelly was caught by [[Ripley Adams|Det. Ripley Adams]], who attacked and nearly killed him. Right as Kelly's life was slipping away, he was offered salvation by a mysterious entity called The Butcher (now known just as "[[Butch]]"), who told him it could save him and give him the ability to do the things he wanted to do if he allowed it in. Kelly consented, and managed to fight off Det. Ripley Adams and escape.
In an attempt to learn more about the death of Jimmy Domal, Kelly approached [[Carmichael]] and offered to let himself be turned into a vampiric thrall in exchange for access to sources of information about Jimmy's death. After learning as much as he could, Kelly offered himself to Carmichael to be turned, but quickly discovered that he could not be turned, and escaped in the confusion.
== Relationships ==
Kelly is friends with [[Rabbit Moon]] and [[Nammi]].
Kelly is linked to an entity known as The Butcher, or just "[[Butch]]" - a shadowy, humanoid figure.
== Abilities ==
'''Burglar'''. When you break into a secure location, roll +Sharp. On a 10+ pick three, on a 7-9 pick two: you get in undetected, you get out undetected, you don’t leave a mess, you find what you were after.
'''Deal with the Devil''': You sold your soul to the Devil. Pick one or two things you got out of the deal: wealth, fame, youth, sensual gratification, skill (add +1 to two ratings). Payment is due either when you die, in six months (if you picked two things) or otherwise in a year.
'''Guardian''': You have a mystical ally (perhaps a spirit, alien, or cryptid) who helps and defends you. Define them, and their powers, with the Keeper’s agreement. Their look is one of: invisible, an intangible spirit thing, a weird creature, disguised as an animal, or disguised as a person.
=== Advancements ===
{{#spoiler:show=Spoilers for Episode 3|hide=Spoilers for Episode 3|'''+1 Sharp'''}} <br>
{{#spoiler:show=Spoilers for Episode #|hide=Spoilers for Episode #|'''Precise Strike'''. When you inflict harm on a monster, you can aim for a weak spot. Roll +Tough. On a 10+ you inflict +2 harm. On a 7-9 you inflict +1 harm.On a miss, you leave yourself open to the monster.}} <br>
{{#spoiler:show=Spoilers for Episode 17|hide=Spoilers for Episode 17|'''Devastating'''. When you inflict harm, you may inflict +1 harm.}} <br>
{{#spoiler:show=Spoilers for Episode 20|hide=Spoilers for Episode 20|'''Crew'''. You have a regular crew, a team of three or four people who will help you out with pretty much anything. They count as a team.}}
==Gallery==
[[File:Kelly_Aberdeen.png|200px|thumb|left|Caption]]
== Notes ==
{{Reflist|group=note}}
== References ==
{{Reflist}}
[[Category:PCs]]
[[Category:Norfork characters]]
cc6b91e15aa6a952f88f290ef9345225cf7aac4d
180
179
2024-01-04T21:21:16Z
Laggardson
2
wikitext
text/x-wiki
Kelly Aberdeen is a player character from Season 2: [[Norfork]]. He is played by [[William White]], and uses the Crooked Playbook.{{Infobox Character
|color_theme =
|title = Kelly Aberdeen
|playbook = The Crooked
|place_of_origin = [[Norfork (City)|Norfork]]
|player = [[William White]]
|image1 = [[File:Kelly_Aberdeen.png]]
|aliases = The Cryptid
|season = ''[[Norfork]]''
|pronouns = he/him
|game = [[Monster of the Week]]
|caption1 = test of caption
|debut = [[Norfork 01: Messages]]
}}
== Appearance ==
Kelly is a trans man. He's thin but shredded (like a Bruce Lee type), 5'2" brown skin (latine/x) with dark brown curly, moody almost k-pop emo hair, except curly and not terribly long (longer on top, shorter on the sides and back).
He wears mostly loose fitting black tops/button ups, but tattered skinny black pants and black combat boots. sharp facial features and thin rounded glasses.
== Background ==
Kelly grew up in Norfork. After losing his parents and having his home seized by the City for a failure to keep up on mortgage payments, Kelly began to angrily seek out ways of taking back what he felt was his.
He stumbled onto the forums of [[Jamie Jesigo]], and Kelly decided to take up a vigilante mantle of his own: The Cryptid. He initially attempted to be turned into a vampire, but quickly discovered that he was immune to being turned into a magical creature of any kind.
While investigating the death of [[Jimmy Domal]] at the headquarters of the [[City Police]], as The Cryptid, Kelly was caught by [[Ripley Adams|Det. Ripley Adams]], who attacked and nearly killed him. Right as Kelly's life was slipping away, he was offered salvation by a mysterious entity called The Butcher (now known just as "[[Butch]]"), who told him it could save him and give him the ability to do the things he wanted to do if he allowed it in. Kelly consented, and managed to fight off Det. Ripley Adams and escape.
In an attempt to learn more about the death of Jimmy Domal, Kelly approached [[Carmichael]] and offered to let himself be turned into a vampiric thrall in exchange for access to sources of information about Jimmy's death. After learning as much as he could, Kelly offered himself to Carmichael to be turned, but quickly discovered that he could not be turned, and escaped in the confusion.
== Relationships ==
Kelly is friends with [[Rabbit Moon]] and [[Nammi]].
Kelly is linked to an entity known as The Butcher, or just "[[Butch]]" - a shadowy, humanoid figure.
== Abilities ==
'''Burglar'''. When you break into a secure location, roll +Sharp. On a 10+ pick three, on a 7-9 pick two: you get in undetected, you get out undetected, you don’t leave a mess, you find what you were after.
'''Deal with the Devil''': You sold your soul to the Devil. Pick one or two things you got out of the deal: wealth, fame, youth, sensual gratification, skill (add +1 to two ratings). Payment is due either when you die, in six months (if you picked two things) or otherwise in a year.
'''Guardian''': You have a mystical ally (perhaps a spirit, alien, or cryptid) who helps and defends you. Define them, and their powers, with the Keeper’s agreement. Their look is one of: invisible, an intangible spirit thing, a weird creature, disguised as an animal, or disguised as a person.
=== Advancements ===
{{#spoiler:show=Spoilers for Episode 3|hide=Spoilers for Episode 3|'''+1 Sharp'''}} <br>
{{#spoiler:show=Spoilers for Episode #|hide=Spoilers for Episode #|'''Precise Strike'''. When you inflict harm on a monster, you can aim for a weak spot. Roll +Tough. On a 10+ you inflict +2 harm. On a 7-9 you inflict +1 harm.On a miss, you leave yourself open to the monster.}} <br>
{{#spoiler:show=Spoilers for Episode 17|hide=Spoilers for Episode 17|'''Devastating'''. When you inflict harm, you may inflict +1 harm.}} <br>
{{#spoiler:show=Spoilers for Episode 20|hide=Spoilers for Episode 20|'''Crew'''. You have a regular crew, a team of three or four people who will help you out with pretty much anything. They count as a team.}}
==Gallery==
[[File:Kelly_Aberdeen.png|200px|thumb|left|Caption]]
== Notes ==
{{Reflist|group=note}}
== References ==
{{Reflist}}
[[Category:PCs]]
[[Category:Norfork characters]]
fbd22102a5f583811784593810ddbdc9e48e250c
181
180
2024-01-04T21:21:37Z
Laggardson
2
wikitext
text/x-wiki
{{Infobox Character
|color_theme =
|title = Kelly Aberdeen
|playbook = The Crooked
|place_of_origin = [[Norfork (City)|Norfork]]
|player = [[William White]]
|image1 = [[File:Kelly_Aberdeen.png]]
|aliases = The Cryptid
|season = ''[[Norfork]]''
|pronouns = he/him
|game = [[Monster of the Week]]
|caption1 = test of caption
|debut = [[Norfork 01: Messages]]
}}
Kelly Aberdeen is a player character from Season 2: [[Norfork]]. He is played by [[William White]], and uses the Crooked Playbook.
== Appearance ==
Kelly is a trans man. He's thin but shredded (like a Bruce Lee type), 5'2" brown skin (latine/x) with dark brown curly, moody almost k-pop emo hair, except curly and not terribly long (longer on top, shorter on the sides and back).
He wears mostly loose fitting black tops/button ups, but tattered skinny black pants and black combat boots. sharp facial features and thin rounded glasses.
== Background ==
Kelly grew up in Norfork. After losing his parents and having his home seized by the City for a failure to keep up on mortgage payments, Kelly began to angrily seek out ways of taking back what he felt was his.
He stumbled onto the forums of [[Jamie Jesigo]], and Kelly decided to take up a vigilante mantle of his own: The Cryptid. He initially attempted to be turned into a vampire, but quickly discovered that he was immune to being turned into a magical creature of any kind.
While investigating the death of [[Jimmy Domal]] at the headquarters of the [[City Police]], as The Cryptid, Kelly was caught by [[Ripley Adams|Det. Ripley Adams]], who attacked and nearly killed him. Right as Kelly's life was slipping away, he was offered salvation by a mysterious entity called The Butcher (now known just as "[[Butch]]"), who told him it could save him and give him the ability to do the things he wanted to do if he allowed it in. Kelly consented, and managed to fight off Det. Ripley Adams and escape.
In an attempt to learn more about the death of Jimmy Domal, Kelly approached [[Carmichael]] and offered to let himself be turned into a vampiric thrall in exchange for access to sources of information about Jimmy's death. After learning as much as he could, Kelly offered himself to Carmichael to be turned, but quickly discovered that he could not be turned, and escaped in the confusion.
== Relationships ==
Kelly is friends with [[Rabbit Moon]] and [[Nammi]].
Kelly is linked to an entity known as The Butcher, or just "[[Butch]]" - a shadowy, humanoid figure.
== Abilities ==
'''Burglar'''. When you break into a secure location, roll +Sharp. On a 10+ pick three, on a 7-9 pick two: you get in undetected, you get out undetected, you don’t leave a mess, you find what you were after.
'''Deal with the Devil''': You sold your soul to the Devil. Pick one or two things you got out of the deal: wealth, fame, youth, sensual gratification, skill (add +1 to two ratings). Payment is due either when you die, in six months (if you picked two things) or otherwise in a year.
'''Guardian''': You have a mystical ally (perhaps a spirit, alien, or cryptid) who helps and defends you. Define them, and their powers, with the Keeper’s agreement. Their look is one of: invisible, an intangible spirit thing, a weird creature, disguised as an animal, or disguised as a person.
=== Advancements ===
{{#spoiler:show=Spoilers for Episode 3|hide=Spoilers for Episode 3|'''+1 Sharp'''}} <br>
{{#spoiler:show=Spoilers for Episode #|hide=Spoilers for Episode #|'''Precise Strike'''. When you inflict harm on a monster, you can aim for a weak spot. Roll +Tough. On a 10+ you inflict +2 harm. On a 7-9 you inflict +1 harm.On a miss, you leave yourself open to the monster.}} <br>
{{#spoiler:show=Spoilers for Episode 17|hide=Spoilers for Episode 17|'''Devastating'''. When you inflict harm, you may inflict +1 harm.}} <br>
{{#spoiler:show=Spoilers for Episode 20|hide=Spoilers for Episode 20|'''Crew'''. You have a regular crew, a team of three or four people who will help you out with pretty much anything. They count as a team.}}
==Gallery==
[[File:Kelly_Aberdeen.png|200px|thumb|left|Caption]]
== Notes ==
{{Reflist|group=note}}
== References ==
{{Reflist}}
[[Category:PCs]]
[[Category:Norfork characters]]
08f079d768ae6438754574ceaa460b62794e0bce
Nammi
0
55
182
118
2024-01-04T21:26:40Z
Laggardson
2
/* Appearance */
wikitext
text/x-wiki
{{Infobox Character
|color_theme =
|title = Nammi
|playbook = The Divine
|place_of_origin = [[The Garden]]
|player = [[Sam Darr]]
|image1 = [[]]
|aliases =
|season = ''[[Norfork]]''
|pronouns = she/her
|game = [[Monster of the Week]]
|caption1 = test of caption
|debut = [[Norfork 01: Messages]]
}}
Nammi is a player character from Season 2. She is played by Sam Darr, and uses the Divine playbook.
==Appearance==
Nammi is a short (5'3), curvy girl with bright pink, long and wavy hair and large lavender eyes. She has large, pouty lips. She has pale skin and wears a lot of blush (think e-girl levels of blush). She wears a rose gold chainmail shirt that looks like it could be worn to a nightclub and rose gold greaves that are typically covered by a long flowy skirt.
Nammi has an enormous sword provided to her to help enact her duties as a member of the [[Agents of Dranja]]. Her sword is a long thin silver blade with a pink hilt that has several cutsie/kawaii charms hanging off of it. When she wills it, the sword glows with a pink fire.
==Background==
Nammi is a member of the [[Agents of Dranja]], which are a quasi-religious group of non-human beings that have dispatched to Earth in order to act on the behalf of their goddess [[Dranja]], most commonly to intervene in romantic relationships. They are similar to the myths of cupids of cherubic angels. Nammi was initially dispatched to Earth from [[The Garden]]) in order to intervene in [[VaccuCon]]'s apocalyptic plans in in the finale of Pest Control Season 1, but was distracted by human activities during the time she was intended to act.
After her failure to act, Nammi has chosen not to return to The Garden, and instead try to find a way to make up for her failure here on Earth. She has settled in Norfork. In addition to her day job at [[Hothouse Flowers]], Nammi also regularly provides relationship advice to people in Norfork.
Through her mystical connection to The Garden, Nammi can get a vague sense of when humans are important to Dranja's will and suspects that one of her friends Rabbit or Kelly are key to stopping a darkness she feels is spreading from [[The City]].
== Relationships ==
==Abilities==
==Gallery==
==Notes==
==Reference==
{{Category:Norfork characters}}
{{Category:PCs}}
666ba20d402f6e965e69726e7fd5ab45303a1b47
Myriad Relocation Services
0
79
183
2024-01-05T05:51:08Z
Laggardson
2
Created page with "{{Infobox Group |color_theme=tm |title1 = Myriad Relocation Services |leaders = |members = [[Xilin]] <br> }} Myriad Relocation Services (M.R.S.) is an organization dedicated to the rehousing of Myriads away from the threats presented by human society. A notable example includes the movement of the Loch Ness Monster. ==Background=="
wikitext
text/x-wiki
{{Infobox Group
|color_theme=tm
|title1 = Myriad Relocation Services
|leaders =
|members =
[[Xilin]] <br>
}}
Myriad Relocation Services (M.R.S.) is an organization dedicated to the rehousing of Myriads away from the threats presented by human society.
A notable example includes the movement of the Loch Ness Monster.
==Background==
93763ff0b84f9c59763afe1042736cc6fb075ba4
Norfork 02: Double-Take
0
65
184
146
2024-01-05T06:13:40Z
Laggardson
2
wikitext
text/x-wiki
{{Infobox episode
|color_theme=
|title = Double-Take
|episode_number = 02
|release_date = Dec 11, 2022
|previous_episode = [[Norfork 01: Messages|Messages]]
|next_episode = [[Norfork 03: The Right To Remain Silent|The Right To Remain Silent]]
|length = 1hr 11min
|episode_page = https://open.spotify.com/episode/2jpb4dpb3iBhFzMTHt2yIQ?si=0D-EfOOnRD2VA5uoLErq4g
|transcript =
|score=
|cast=
[[Sam Richardson]] <br>
[[William White]] <br>
[[Jonas Newhouse]] <br>
[[Sam Darr]]
|game= [[Monster of the Week]]
|content_warnings= Police, blood/viscera, gun violence
|arc= 1
}}
==Episode description==
==Plot==
==Cast==
{{Categories}}
648d07e24ca599823b0852fc3011fa729430578a
185
184
2024-01-05T06:21:16Z
Laggardson
2
/* Plot */
wikitext
text/x-wiki
{{Infobox episode
|color_theme=
|title = Double-Take
|episode_number = 02
|release_date = Dec 11, 2022
|previous_episode = [[Norfork 01: Messages|Messages]]
|next_episode = [[Norfork 03: The Right To Remain Silent|The Right To Remain Silent]]
|length = 1hr 11min
|episode_page = https://open.spotify.com/episode/2jpb4dpb3iBhFzMTHt2yIQ?si=0D-EfOOnRD2VA5uoLErq4g
|transcript =
|score=
|cast=
[[Sam Richardson]] <br>
[[William White]] <br>
[[Jonas Newhouse]] <br>
[[Sam Darr]]
|game= [[Monster of the Week]]
|content_warnings= Police, blood/viscera, gun violence
|arc= 1
}}
==Episode description==
==Plot==
[[Rabbit Moon|Rabbit]], [[Kelly Aberdeen|Kelly]], and [[Nammi]] arrive at [[Ace Aruna|Ace]]’s house. Kelly sneaks around back while Rabbit talks to the crowd and Nammi attempts to talk to the police.
Kelly makes his way inside, and gets Ace alone, but can’t convince them to come with him because he won’t admit he knows Nammi. He leaves without Ace.
Rabbit talks with [[Elio Amadi]] - a [[Myriad]] and local stage magician known as “The Drippy One” he knows - but doesn’t learn much. He does notice that the window of the house is suspiciously left open.
Nammi talks with the police, but can’t convince them to tell her anything. She wanders over to a news truck, where she talks to the reporter about Ace and their situation - giving them the info that a serious crime may have been committed.
Kelly, Nammi, and Rabbit regroup, and return later to investigate the window. Someone spots them through the window across the street.
Rabbit tries to turn into one of the police officers he saw, but accidentally turns into Kelly instead. He sneaks through the back door of the Ace’s house, and finds a bloody mess on the floor of the bedroom that ends suddenly, as well as fibers on the outside of the window that indicate someone has come in - and that they are still there.
Rabbit tries to sneak up on the closet, and the door explodes with rocksalt pellets. Rabbit is caught, and leaps out the window.
Kelly and Nammi, hearing the commotion, run to the window and leap inside. Kelly manages to knock the gun out of the person’s hand, and Nammi knocks them out with a magical punch.
Kelly sends Rabbit to take over his shift at Cheapskate, while he and Nammi stay behind to deal with the unconscious body.
==Cast==
{{Categories}}
bbea14ec99902ace0644c88324314fb76a493591
Xilin
0
80
186
2024-01-05T06:36:48Z
Laggardson
2
Created page with "{{Infobox Character |color_theme = |title = Xilin |people = Myriad |affiliations = [[Myriad Relocation Services|M.R.S.]] |relations = |status = alive |season = ''[[Fate]]'' |pronouns = he/him |image1 = |caption1 = |titles = }} {{Quote |I am Xilin. |author=Xilin |source=[[Fate 04: Geringer Pt. 2| Geringer Pt. 2]]}} '''Xilin''' is an enigmatic figure associated with [[Myriad Relocation Services|M.R.S]]. Keeley, Henrietta, and Maggie first encountered him in the town..."
wikitext
text/x-wiki
{{Infobox Character
|color_theme =
|title = Xilin
|people = Myriad
|affiliations = [[Myriad Relocation Services|M.R.S.]]
|relations =
|status = alive
|season = ''[[Fate]]''
|pronouns = he/him
|image1 =
|caption1 =
|titles =
}}
{{Quote
|I am Xilin.
|author=Xilin
|source=[[Fate 04: Geringer Pt. 2| Geringer Pt. 2]]}}
'''Xilin''' is an enigmatic figure associated with [[Myriad Relocation Services|M.R.S]]. Keeley, Henrietta, and Maggie first encountered him in the town of [[Geringer (town)|Geringer]].
==Appearance==
When presenting as a human, looks like a tall, lanky, handsome Chinese man with short black hair and gold-painted nails. Dressed very hip. When not in human form, looks like a brilliant, reflective golden-colored giraffe with scales, cloven hooves, and antlers.
867e26f338436778d49664f5635b36d5e8c09293
Template:Infobox character
10
13
187
23
2024-01-05T06:40:16Z
Laggardson
2
wikitext
text/x-wiki
<onlyinclude><infobox theme-source="color_theme">
<title source="title">
<default>{{PAGENAME}}</default>
</title>
<image source="image">
<caption source="caption"/>
</image>
<group>
<header>Basic Information</header>
<data source="pronouns">
<label>Pronouns</label>
</data>
<data source="titles">
<label>Titles</label>
</data>
<data source="aliases">
<label>Aliases</label>
</data>
<data source="place_of_origin">
<label>Place of Origin</label>
</data>
<data source="people">
<label>People</label>
</data>
</group>
<group collapse="closed" layout="stacked">
<header>Connections</header>
<data source="affiliations">
<label>Af­fil­i­a­tion(s)</label>
</data>
<data source="relations">
<label>Re­la­tion­ships</label>
</data>
</group>
<group>
<header>Meta Info</header>
<data source="season">
<label>Season</label>
</data>
<data source="game">
<label>Game</label>
</data>
<data source="playbook">
<label>Playbook</label>
</data>
<data source="player">
<label>Player</label>
</data>
<data source="appears_in">
<label>Appears In</label>
</data>
<data source="first_appearance">
<label>First Appearance</label>
</data>
</group>
</infobox><!--
-->{{#ifeq: {{NAMESPACENUMBER}} | 0 | {{#if: {{{color_theme|}}} || [[Category:Infoboxes with missing color theme]] }} | }}</onlyinclude>
<noinclude>
[[Category:Infoboxes]]
{{#ifeq: {{NAMESPACENUMBER}} | 0 | [[Category:Characters]]}}
</noinclude>
dc02cee63e658507334514f57c58bff71cd92501
Template:Infobox Character
10
18
188
34
2024-01-05T06:41:10Z
Laggardson
2
wikitext
text/x-wiki
<onlyinclude><infobox theme-source="color_theme">
<title source="title">
<default>{{PAGENAME}}</default>
</title>
<image source="image">
<caption source="caption"/>
</image>
<group>
<header>Basic Information</header>
<data source="pronouns">
<label>Pronouns</label>
</data>
<data source="titles">
<label>Titles</label>
</data>
<data source="aliases">
<label>Aliases</label>
</data>
<data source="place_of_origin">
<label>Place of Origin</label>
</data>
<data source="people">
<label>People</label>
</data>
</group>
<group collapse="closed" layout="stacked">
<header>Connections</header>
<data source="affiliations">
<label>Af­fil­i­a­tion(s)</label>
</data>
<data source="relations">
<label>Re­la­tion­ships</label>
</data>
</group>
<group>
<header>Meta Info</header>
<data source="season">
<label>Season</label>
</data>
<data source="game">
<label>Game</label>
</data>
<data source="playbook">
<label>Playbook</label>
</data>
<data source="player">
<label>Player</label>
</data>
<data source="appears_in">
<label>Appears In</label>
</data>
<data source="first_appearance">
<label>First Appearance</label>
</data>
</group>
</infobox><!--
-->{{#ifeq: {{NAMESPACENUMBER}} | 0 | {{#if: {{{color_theme|}}} || [[Category:Infoboxes with missing color theme]] }} | }}</onlyinclude>
<noinclude>
{{Documentation}}
[[Category:Infoboxes]]
{{#ifeq: {{NAMESPACENUMBER}} | 0 | [[Category:Characters]]}}
</noinclude>
8189cfd5f67abd8d02e1ee0d663b3d1a1f3ba6e5
Martin Graves
0
51
189
96
2024-01-05T06:42:21Z
Laggardson
2
wikitext
text/x-wiki
{{Infobox Character
|color_theme =
|title = Martin Graves
|people = Human
|affiliations =
|relations =
|status = dead
|season = ''[[Fate]]''
|pronouns = he/him
|image1 =
|caption1 =
|titles = The Chosen One
|first_appearance = [[Fate 01: The Dirge Pt. 1|The Dirge Pt. 1]]
}}
{{Quote
|Oh shit.
|author=Martin Graves
|source=[[Fate 01: The Dirge Pt. 1|The Dirge Pt. 1]]}}
'''Martin Graves''' is a human Chosen One who travelled with Pest Control.
==Appearance==
==Personality==
==Background==
==References==
<references />
{{NavboxFate}}
[[Category:Fate characters]]
c40edddb9daa534420858e23e2cb2d91c61009b1
190
189
2024-01-05T06:43:27Z
Laggardson
2
/* Appearance */
wikitext
text/x-wiki
{{Infobox Character
|color_theme =
|title = Martin Graves
|people = Human
|affiliations =
|relations =
|status = dead
|season = ''[[Fate]]''
|pronouns = he/him
|image1 =
|caption1 =
|titles = The Chosen One
|first_appearance = [[Fate 01: The Dirge Pt. 1|The Dirge Pt. 1]]
}}
{{Quote
|Oh shit.
|author=Martin Graves
|source=[[Fate 01: The Dirge Pt. 1|The Dirge Pt. 1]]}}
'''Martin Graves''' is a human Chosen One who travelled with Pest Control.
==Appearance==
A white guy in his early 20s. Looks kinda like Elijah wood, with short mussed brown hair.
==Personality==
==Background==
==References==
<references />
{{NavboxFate}}
[[Category:Fate characters]]
17aa814b8fae89aa3a50624df986ffa1a68e9b11
Fate 01: The Dirge Pt. 1
0
81
191
2024-01-05T06:48:08Z
Laggardson
2
Created page with "{{Infobox episode |color_theme= |title = The Dirge Pt. 1 |episode_number = 01 |release_date = |next_episode = [[Fate 02: The Dirge Pt. 2|The Dirge Pt. 2]] |length = 159min |episode_page = https://open.spotify.com/episode/4X2CTiM0bliMmDSjRbgOVo?si=xUjBG32OR82-he6TD2dcqQ |transcript = |score= |cast= [[Sam Richardson]] <br> [[William White]] <br> [[Jonas Newhouse]] <br> [[Sam Darr]] |game=[[Monster of the Week]] |content_warnings= Body horror |arc= 1 }}"
wikitext
text/x-wiki
{{Infobox episode
|color_theme=
|title = The Dirge Pt. 1
|episode_number = 01
|release_date =
|next_episode = [[Fate 02: The Dirge Pt. 2|The Dirge Pt. 2]]
|length = 159min
|episode_page = https://open.spotify.com/episode/4X2CTiM0bliMmDSjRbgOVo?si=xUjBG32OR82-he6TD2dcqQ
|transcript =
|score=
|cast=
[[Sam Richardson]] <br>
[[William White]] <br>
[[Jonas Newhouse]] <br>
[[Sam Darr]]
|game=[[Monster of the Week]]
|content_warnings= Body horror
|arc= 1
}}
01432439a240d11dcce6af958c2422060ab7743f
192
191
2024-01-05T06:49:44Z
Laggardson
2
wikitext
text/x-wiki
{{Infobox episode
|color_theme=
|title = The Dirge Pt. 1
|episode_number = 01
|release_date =
|next_episode = [[Fate 02: The Dirge Pt. 2|The Dirge Pt. 2]]
|length = 159min
|episode_page = https://open.spotify.com/episode/4X2CTiM0bliMmDSjRbgOVo?si=xUjBG32OR82-he6TD2dcqQ
|transcript =
|score=
|cast=
[[Sam Richardson]] <br>
[[William White]] <br>
[[Jonas Newhouse]] <br>
[[Sam Darr]]
|game=[[Monster of the Week]]
|content_warnings= Body horror
|arc= 1
}}
==Episode Description==
Three strangers arrive at a run-down hotel in the middle of a rainstorm, seeking shelter and a warm place to spend the night.
==Plot==
cb90ee322400e6ffe4fa42cfd0c268c4cccee0e1
Norfork 03: The Right To Remain Silent
0
82
193
2024-01-05T06:57:11Z
Laggardson
2
Created page with " {{Infobox episode |color_theme= |title = The Right To Remain Silent |episode_number = 03 |release_date = Dec 25, 2022 |previous_episode = [[Norfork 02: Double-Take|Double-Take]] |next_episode = [[Norfork 04: Stay In Touch|Stay In Touch]] |length = 1hr 3min |episode_page = https://open.spotify.com/episode/5NnLQPLy7aRSXq0hazaYX1?si=DkiGPx-dSVKaLwk_DQJllA |transcript = |score= |cast= [[Sam Richardson]] <br> [[William White]] <br> [[Jonas Newhouse]] <br> [[Sam Darr]] |ga..."
wikitext
text/x-wiki
{{Infobox episode
|color_theme=
|title = The Right To Remain Silent
|episode_number = 03
|release_date = Dec 25, 2022
|previous_episode = [[Norfork 02: Double-Take|Double-Take]]
|next_episode = [[Norfork 04: Stay In Touch|Stay In Touch]]
|length = 1hr 3min
|episode_page = https://open.spotify.com/episode/5NnLQPLy7aRSXq0hazaYX1?si=DkiGPx-dSVKaLwk_DQJllA
|transcript =
|score=
|cast=
[[Sam Richardson]] <br>
[[William White]] <br>
[[Jonas Newhouse]] <br>
[[Sam Darr]]
|game= [[Monster of the Week]]
|content_warnings= police, gaslighting, brief hospital setting, grief
|arc= 1
}}
==Episode Description==
==Plot==
Kelly and Nammi deliberate over what to do about the unconscious body. They decide to stuff him into a suitcase from the Aruna house - but begin to hear police sirens in the distance.
Nammi hefts the suitcase out the window, immediately into view of a police officer, who investigates. After she admits she was inside with “The Cryptid” the officer tells her she needs to come with him to the police station in the city. He calls an ambulance for the man in the suitcase.
At Cheapskate, Rabbit (as Kelly) tries to pretend that they are sick, but Kelly’s boss Joanie tries to ignore it and instead sends them to deal with a joint birthday party between mothers Hannah Radek and Silvia Rui - members of the Norfork Parent’s Assemblage - who each claim to be running the party.
Kelly sneaks onto the roof of the ambulance, and is whisked into The City. Once there, he sneaks into the hospital and interviews the mysterious unconscious man. The man reveals that he is a former(?) monster hunter named Simon Pip, and that he’s been looking into the disappearance of Ace’s partner. He’s not sure Ace did it, but has complicated feelings about monsters/myriads.
At the City police HQ, Nammi is questioned by the officer who picked her up - as well as Det. Adams and Officer Sherridan. She admits to knowing the Cryptid. She tells them the following things:
She knows the Crytpid
She and the Cryptid were at the house earlier in the day
She works at Hothouse Flowers
Simon Pip shot the Cryptid. He was hiding in the closet.
Nammi doesn’t have a last name
She’s been in Norfork 2-3 years, and she was with Dranja before that (hypothetically on a religious commune)
Nammi and the cryptid sometimes hang out in abandoned buildings
Det Adams gives Nammi his card and asks her to call him next time she’s hanging out with the Cryptid.
Nammi is moved to the cell next to Ace. Ace tells her not to talk to the police. His lawyer - a werewolf named Almos Sumati - arrives, and agrees to help Nammi as well. Almos tells her that he’s going to help her, but that it would be useful if she could give up more information on the Cryptid.
At Cheapskate, Rabbit (as Kelly) is managing the competing party. Joanie pulls him aside and asks him how he’s doing, and just as she’s about to tell him to go home, Rabbit turns back into their “demon boy” form in front of her. She demands an explanation, and Rabbit tells her that his magic is messing with her perception of him - and that this was a mistake. She asks him to call Kelly to prove that he’s ok, but Kelly doesn’t answer. She tells him that he has to stay in the backroom until Kelly calls back or arrives - or she’s calling the police.
Back in the cell, Ace tells Nammi that they’re worried their fiancee Kennedy is dead. They admit that if the police start looking into them, that they’ll find out Ace has been working for the Dread Ringers as a pay to earn extra cash for the wedding.
Ace asks if Nammi can help them escape, and Nammi agrees - phasing them through the wall of the police station.
2916a665dd0d2e3c5eaecaa77d63584444edb176
194
193
2024-01-05T06:58:03Z
Laggardson
2
/* Episode Description */
wikitext
text/x-wiki
{{Infobox episode
|color_theme=
|title = The Right To Remain Silent
|episode_number = 03
|release_date = Dec 25, 2022
|previous_episode = [[Norfork 02: Double-Take|Double-Take]]
|next_episode = [[Norfork 04: Stay In Touch|Stay In Touch]]
|length = 1hr 3min
|episode_page = https://open.spotify.com/episode/5NnLQPLy7aRSXq0hazaYX1?si=DkiGPx-dSVKaLwk_DQJllA
|transcript =
|score=
|cast=
[[Sam Richardson]] <br>
[[William White]] <br>
[[Jonas Newhouse]] <br>
[[Sam Darr]]
|game= [[Monster of the Week]]
|content_warnings= police, gaslighting, brief hospital setting, grief
|arc= 1
}}
==Episode Description==
The trio must decide what to do after a new problem falls in their lap and they are forced to separate. Kelly follows a lead. Nammi tells the truth. Rabbit gets a new job.
==Plot==
Kelly and Nammi deliberate over what to do about the unconscious body. They decide to stuff him into a suitcase from the Aruna house - but begin to hear police sirens in the distance.
Nammi hefts the suitcase out the window, immediately into view of a police officer, who investigates. After she admits she was inside with “The Cryptid” the officer tells her she needs to come with him to the police station in the city. He calls an ambulance for the man in the suitcase.
At Cheapskate, Rabbit (as Kelly) tries to pretend that they are sick, but Kelly’s boss Joanie tries to ignore it and instead sends them to deal with a joint birthday party between mothers Hannah Radek and Silvia Rui - members of the Norfork Parent’s Assemblage - who each claim to be running the party.
Kelly sneaks onto the roof of the ambulance, and is whisked into The City. Once there, he sneaks into the hospital and interviews the mysterious unconscious man. The man reveals that he is a former(?) monster hunter named Simon Pip, and that he’s been looking into the disappearance of Ace’s partner. He’s not sure Ace did it, but has complicated feelings about monsters/myriads.
At the City police HQ, Nammi is questioned by the officer who picked her up - as well as Det. Adams and Officer Sherridan. She admits to knowing the Cryptid. She tells them the following things:
She knows the Crytpid
She and the Cryptid were at the house earlier in the day
She works at Hothouse Flowers
Simon Pip shot the Cryptid. He was hiding in the closet.
Nammi doesn’t have a last name
She’s been in Norfork 2-3 years, and she was with Dranja before that (hypothetically on a religious commune)
Nammi and the cryptid sometimes hang out in abandoned buildings
Det Adams gives Nammi his card and asks her to call him next time she’s hanging out with the Cryptid.
Nammi is moved to the cell next to Ace. Ace tells her not to talk to the police. His lawyer - a werewolf named Almos Sumati - arrives, and agrees to help Nammi as well. Almos tells her that he’s going to help her, but that it would be useful if she could give up more information on the Cryptid.
At Cheapskate, Rabbit (as Kelly) is managing the competing party. Joanie pulls him aside and asks him how he’s doing, and just as she’s about to tell him to go home, Rabbit turns back into their “demon boy” form in front of her. She demands an explanation, and Rabbit tells her that his magic is messing with her perception of him - and that this was a mistake. She asks him to call Kelly to prove that he’s ok, but Kelly doesn’t answer. She tells him that he has to stay in the backroom until Kelly calls back or arrives - or she’s calling the police.
Back in the cell, Ace tells Nammi that they’re worried their fiancee Kennedy is dead. They admit that if the police start looking into them, that they’ll find out Ace has been working for the Dread Ringers as a pay to earn extra cash for the wedding.
Ace asks if Nammi can help them escape, and Nammi agrees - phasing them through the wall of the police station.
0ec0d7e797d8ab60712f684d5b48b4c7f4928d61